Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Транзакции в Access   Найти похожие ветки 

 
zsv ©   (2010-06-11 17:44) [0]

День добрый помогите с проблемкой.
использую базу данных Access2000, подкл через ADO
одной програмкой пишу в базу
frmMain.con1.BeginTrans;
q.SQL.Text:="insert into MyTable (IdUser,NameUser) values(1,"Вася");
q.ExecSQL;
frmMain.con1.CommitTrans;

второй програмкой тут же пытаюсь считать эту строку, но запрос пустой.
погонял считывание в цикле. показало что данные видны второй программкой спустя 2 сек примерно.
А вот если не использовать явные транзакции - то видны мгновенно. В чем тут дело?
frmMain.con1.IsolationLevel:=ilCursorStability в обоих программках.
ЗЫ. транзакции использовать обязательно ,тк необходимо делать несколько вставок в разные табл
Спасибо


 
sniknik ©   (2010-06-12 10:37) [1]

> показало что данные видны второй программкой спустя 2 сек примерно.
в чем транзакции скорее всего не виноваты, поведение похоже на то когда не используют общий ADOConnection а прописывают строки соединений в компонентах, что приводит к созданию нескольких com объектов, и таймаутам на синхронизацию данных между ними.

> frmMain.con1.BeginTrans;
> использовать явные транзакции
это не явные, это клиентские... во что их транслирует, и как, используемый провайдер только ему одному известно (авторы уже давно это по-забывали), делай их запросами, тогда не будет зависеть от непонятных интерпретаций (и сразу будет видно если сервер не поддерживает, то и команд не будет, и не будешь думать на всякие эмуляции, что это полноценная транзакция. да, это не про аксесс это "вообще").

> q.ExecSQL;
ну и ... - ADOCommand, ADODataset .


 
Виталий Панасенко(дом)   (2010-06-12 17:05) [2]


> sniknik ©   (12.06.10 10:37) [1]

а как же

> zsv ©   (11.06.10 17:44)  


> второй програмкой тут же пытаюсь считать эту строку, но
> запрос пустой.


?


 
Виталий Панасенко(дом)   (2010-06-12 17:07) [3]

это я о
> не используют общий ADOConnection

...
общего коннекшина и не м.б. в принципе


 
sniknik ©   (2010-06-12 18:00) [4]

> общего коннекшина и не м.б. в принципе
в одной программе. т.е. frmMain.con1 здесь один, q другой.


 
zsv ©   (2010-06-14 18:06) [5]

>sniknik ©

q:=TADOQuery.Create(nil);
q.Connection:=frmMain.con1;

>ADOCommand, ADODataset .
не помогают - все также не видит записи...

причем более долгие наблюдения показали, что 2с - это не факт, может быть и 4 сек а может и менее одной секунды...непредсказуемо.
я в ступоре...


 
sniknik ©   (2010-06-14 19:17) [6]

> не помогают - все также не видит записи...
это не для помощи в твоих проблемах, это правильные компоненты для использования.
помощь была в первом-втором абзаце первого поста.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.068 c
15-1345064481
Inovet
2012-08-16 01:01
2013.03.22
Windows 8 release


15-1338322058
Bluejohn
2012-05-30 00:07
2013.03.22
Чем порезать видео?


15-1336034354
ZeroDivide
2012-05-03 12:39
2013.03.22
Delphi перестала работать комбинация Ctrl+Shift+стрелки,


15-1344504943
brother
2012-08-09 13:35
2013.03.22
верстка div ом


2-1336713116
igorium
2012-05-11 09:11
2013.03.22
ShellTreeView и папка "Рабочий стол"