Форум: "Базы";
Текущий архив: 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.062 c