Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Транзакции в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.066 c
15-1351086265
Дмитрий С
2012-10-24 17:44
2013.03.22
А что нельзя соединяться с базой через ADO с паролем ";"=


15-1330599411
Pit
2012-03-01 14:56
2013.03.22
Импорт интерфейсов из C# в Delphi


6-1258480519
vadim009
2009-11-17 20:55
2013.03.22
Агент, мессенджер


3-1281438304
12
2010-08-10 15:05
2013.03.22
Параметры в Oracle, ошибка ORA-01747


15-1344450199
ppoko
2012-08-08 22:23
2013.03.22
w8





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский