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

Вниз

не работает Append   Найти похожие ветки 

 
fford   (2010-01-18 13:01) [0]

Здравствуйте!
подскажите почему вылетает ошибка при вызове Append

...
tat.UpdateTransaction.StartTransaction;
tat.Append;
tatID.AsInteger:=IdStati;
...


 
Sergey13 ©   (2010-01-18 13:18) [1]

> [0] fford   (18.01.10 13:01)
> почему вылетает ошибка

Может форточка открыта? А ошибка на улицу хочет.
Что за ошибка то? И где вылетает?


 
fford   (2010-01-18 13:19) [2]

немного не полностью написал
собственно
используется FIBPlus компоненты для доступа к базе firebird
создано две транзакции одна пишушая другая читающая

tat.transaction:=ReadTrans;
tat.UpdateTransaction:=WriteTrans;

далее открываем
tat.Transaction.StartTransaction;
tat.Open;
.....
тут читаются данные из таблицы
....
tat.UpdateTransaction.StartTransaction;
tat.Append;
....

т.е. непонятно если стоит параметр poStartTransaction:=False;
то для добавления записи в таблицу её надо открыть и стартовать updatetransaction в ручную, но если таблиц уже открыта и из нее уже читаются данные то добавить запись невозможно без переоткрытия таблицы?


 
Sergey13 ©   (2010-01-18 13:33) [3]

> [2] fford   (18.01.10 13:19)

Что за ошибка то "вылетает"?


 
fford   (2010-01-18 13:41) [4]

блок операторов стоял в try except
пожтому ошибку я не видел
щас убрал и ооочень удивился .....
не могу грит выполнить эту операцию на закрытом датасете :(

там нигде она не закрывается 8-()


 
Sergey13 ©   (2010-01-18 13:49) [5]

Я с FIBPlus не работал, но сомнительно мне что нужно на каждый чих явно стартовать транзакции.


 
fford   (2010-01-18 14:02) [6]


> сомнительно мне что нужно на каждый чих явно стартовать
> транзакции.

читая мануалы я так понял что если
параметр poStartTransaction поставить в false то я должен ручками управлять
транзакциями
я нашел где оно закрывалось
забыл что если сделать commit то закрываются все датасеты


 
fford   (2010-01-18 14:06) [7]

т.е. получается все читающие транзакции можно объединить в одну транзакцию и стартовать её при запуске программы
а пишущую исключительно при записи новых данных? (ну и измененнии)


 
Sergey13 ©   (2010-01-18 14:19) [8]

> [7] fford   (18.01.10 14:06)

В IBX я в 99% случаев пользуюсь всего одной транзакцией.


 
fford   (2010-01-18 14:22) [9]


> В IBX я в 99% случаев пользуюсь всего одной транзакцией.

зря :(
если сервер на винде то намана
а вот если на линукс
то он такого не прощает :)


 
Sergey13 ©   (2010-01-18 14:53) [10]

> [9] fford   (18.01.10 14:22)
> то он такого не прощает

А чего "такого"?


 
Виталий Панасенко   (2010-01-18 18:06) [11]


> fford   (18.01.10 14:22) [9]

ты лучше б написал, какой компонент: FIBDataSet или FIBQuery,. для первого таких извратов не нужно при двух транзакциях.. это раз.. для второго: ты используешь читающую транзакцию. потому, когда делаешь Commit, все датасеты закрываются..


 
Виталий Панасенко(дом)   (2010-01-18 21:16) [12]

Хотя и ручной Commit для FIBDataSet читающей транзакции закроет все НД, ее использующие...



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

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

Наверх




Память: 0.49 MB
Время: 0.007 c
15-1305447899
Дмитрий С
2011-05-15 12:24
2011.09.04
Работает заведомо нерабочий код.


8-1215423834
Лол
2008-07-07 13:43
2011.09.04
Выввод изображения в подсказке хинт


15-1305318604
Юрий
2011-05-14 00:30
2011.09.04
С днем рождения ! 14 мая 2011 суббота


2-1305792448
Артур
2011-05-19 12:07
2011.09.04
Сохранение наследника TPersistent


15-1305098229
young_dev
2011-05-11 11:17
2011.09.04
обращение к объекту