Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не работает Append


fford ©   (2010-01-18 13:01:00) 

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

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


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

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


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


> fford   (18.01.10 14:22) [9]

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


Sergey13   (2010-01-18 14:53:00) [3]

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

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


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


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

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


Sergey13   (2010-01-18 14:19:00) [5]

> [7] fford   (18.01.10 14:06)

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


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

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


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


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

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


Sergey13   (2010-01-18 13:49:00) [8]

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


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

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

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


Sergey13   (2010-01-18 13:33:00) [10]

> [2] fford   (18.01.10 13:19)

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


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

немного не полностью написал
собственно
используется 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:18:00) [12]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо