powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Невозможно изменить запись присоединенной таблицы
25 сообщений из 34, страница 1 из 2
Невозможно изменить запись присоединенной таблицы
    #32559433
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица на SQL сервере
CREATE TABLE [dbo].[zaprosy] (
[id_zapros] [int] IDENTITY (1, 1) NOT NULL ,
[data] [datetime] NULL ,
[is_sended] [bit] NULL ,
[user_name] [nvarchar] (50) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]

Пишу в нее данные:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dim MyODBC As Workspace
Dim MyConn As Connection
Dim Conn_Str As String
Conn_Str = "ODBC;DATABASE=workbase;UID=sa;PWD=;DSN=workbase"
MyODBC.BeginTrans
If MsgBox("ВОПРОС", vbYesNo + vbExclamation) = vbNo Then
    Exit Sub
End If
Set rstZapros = MyConn.OpenRecordset("select * from zaprosy where is_sended=0 order by data", dbOpenDynaset,  0 , dbOptimistic)
If rstZapros.RecordCount =  0  Then
    rstZapros.AddNew
        rstZapros!data = Date
        rstZapros!user_name = CurrentUser
    rstZapros.Update
    k = rstZapros!id_zapros
Else
    rstZapros.MoveLast
    k = rstZapros!id_zapros
End If
...
....
MyODBC.CommitTrans
MyConn.Close
MyODBC.Close
Set MyConn = Nothing
Set MyODBC = Nothing

Все прелестно. Пишет. При открытии этой же таблицы руками вижу эту новую запись. Но редактировать или удалить не дает, пишет "процесс остановлен ядром джет так как другой пользователь пытается изменить те же данные".
Все - транзакцию завершил, переменные убил.

В чем я торможу?
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559434
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Первичный ключ в таблице есть? Аксесс его видит?
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559437
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть, видит
открываю таблицу вручную, добавляю запись, закрываю таблицу - дает делать все (удалять и изменять). Блокирует только те строки, которые добавил код.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559441
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторMyODBC.BeginTrans
If MsgBox("ВОПРОС", vbYesNo + vbExclamation) = vbNo Then
Exit Sub
End If
Вот это подозрительная штука (хотя дело скорее всего не в ней). Начинаем транзакцию и выходим из процедуры.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559446
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, тут проходим дальше - если выход по нет, то и писать ничего не будет...
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559447
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Но транзакция-то открылась до выхода и осталась незакрытой.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559448
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А следующая транзакция ее не отменит, она будет вложенной в нее. Таким образом:

начали транзакцию
начали транзакцию
закончили транзакцию

А первую не закончили.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559459
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал так:
перегрузил сервер
перегрузил рабочий комп
очистил таблицу через ЕМ
перенес begintrans после вопроса
прогнал - результат тот же
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559464
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А в той части программы, где многоточия, есть ли где-нибудь rstZapros.Close?
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559600
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нету
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559604
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странный код:
Код: plaintext
1.
2.
3.
 
MyConn.close есть    - но нет создания
Conn_Str присвоена - но не использована
давай всё целиком может - ляпа в скрытой части
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559607
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
caperнету
Тоже нехорошо. Таблица может запираться.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559612
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверен на 99.9, что проблема в
автор[is_sended] [bit] NULL

Должен быть default !!!!!!!!
Без него Акцес падает в полях типа bit
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559645
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caperесть, видит
открываю таблицу вручную, добавляю запись, закрываю таблицу - дает делать все (удалять и изменять). Блокирует только те строки, которые добавил код.

нету первичного при генерации по твоему скрипту
при линковке спрашивает "кто кей"

sql2000
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559652
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при наличии ключа скрипт выглядет вот так
проверь себя
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[zaprosy]') and OBJECTPROPERTY(id, N'IsUserTable') =  1 )
drop table [dbo].[zaprosy]
GO

CREATE TABLE [dbo].[zaprosy] (
	[id_zapros] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[data] [datetime] NULL ,
	[is_sended] [bit] NULL ,
	[user_name] [nvarchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NULL 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[zaprosy] WITH NOCHECK ADD 
	CONSTRAINT [PK_zaprosy] PRIMARY KEY  CLUSTERED 
	(
		[id_zapros]
	)  ON [PRIMARY] 
GO
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559655
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уверен на 99.9, что проблема в
автор[is_sended] [bit] NULL

Должен быть default !!!!!!!!
Без него Акцес падает в полях типа bit

ДАААААААААААААААА!
Именно после установки дефолта все пашет!
Всем спасибо!!! Особенно Rivkin Dmitry!!!
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559657
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А я с самого начала спросил, видит ли Аксесс ключ. Выходит, надо спрашивать несколько раз и разными голосами.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559658
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рабочий код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim MyODBC As Workspace
Dim MyConn As Connection
Dim rstZapros As DAO.Recordset
Dim Conn_Str As String
Dim Sedd_String As String
Dim k As Variant
Set MyODBC = CreateWorkspace("", "admin", "", dbUseODBC)
MyODBC.BeginTrans
Conn_Str = "ODBC;DATABASE=workbase;UID=sa;PWD=;DSN=workbase"
Set MyConn = MyODBC.OpenConnection("", , , Conn_Str)
Sedd_String = "select * from zaprosy where is_sended=0 order by data"
Set rstZapros = MyConn.OpenRecordset(Sedd_String, dbOpenDynamic,  0 , dbPessimistic)
     rstZapros.AddNew
     rstZapros!Data = Date
     rstZapros!user_name = CurrentUser
     rstZapros.Update
    rstZapros.Close
  MyConn.Close
MyODBC.CommitTrans
MyODBC.Close
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559664
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Саныч: первичный ключ был и есть, иначе бы не писалось в таблицу!
Все заработало после того, как установил дефолтовое значение поля [is_sended] в таблице.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559673
caper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Shuhard: сорри, не стояла галочка включать в скрипт индексы и проч... ключик был.
У тебя работает без установки дефолта на поле [is_sended]?
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559678
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ой... А почему оно стерлось???
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559682
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычОй... А почему оно стерлось???
мутаторов много - рушиться транзакционность
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559683
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, я не трогал. Чессно слово.
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559684
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
caper2Shuhard: сорри, не стояла галочка включать в скрипт индексы и проч... ключик был.
У тебя работает без установки дефолта на поле [is_sended]?
верх - руками
низ - VBA
...
Рейтинг: 0 / 0
Невозможно изменить запись присоединенной таблицы
    #32559686
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем: дело не в первичном ключе, а в том, как я понимаю, что в Акцесе тип
bit не иожет принимать значение NULL, что и происходит, когда такое поле определено без дифолта. Почему то это влияет на всю таблицу, а сообщение при этом, если выдается - то не разумное. Я долго мучался, пока не понял что к чему. Я уже как то писал о том, что подобный эффект происходит и в случае объявления типов, которые Акс не распознает, например, bigint; или если в IDENTITY определить тип отличный от int ...
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Невозможно изменить запись присоединенной таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]