Главная страница
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.091 c
15-1339736544
AV
2012-06-15 09:02
2013.03.22
с одной стороны - в отпуске. С другой - все неправильно


15-1341656050
ФЫВАОЛДЖ
2012-07-07 14:14
2013.03.22
Случайности не случайны.


4-1259064819
Leonid Troyanovsky
2009-11-24 15:13
2013.03.22
Как заставить GUI thread создать нужное мне окно?


15-1346830391
LDV
2012-09-05 11:33
2013.03.22
Delphi directory


15-1350838886
Лида
2012-10-21 21:01
2013.03.22
Обработка различных событий в Delphi