ogorodov писал(а):Привет *Rik*
Я тут еще на баг наткнулся ... вот такая конструкция не работает
На исходной версии работала ... посмотри пожалуста
Я свой тестовый пример смотрю, в нем то-же самое, у меня работает. Можете сделать тестовый проект с базой?
Скорее всего транзакция не стартанула автоматом. На ibqPlanNume AutoStartTransaction установлено?
Попробуйте сделать так:
- Код: Выделить всё
ibqPlanNume: TIBDataSet;
...
procedure Tdm.DoReturnDatePlan(Sender: TObject; const Date: TDateTime; const TypPl: Integer; const KomentPl: String);
begin
ibqPlanNume.Edit;
ibqPlanNume.FieldByName('DATEPL').AsDateTime:=Date;
ibqPlanNume.FieldByName('TYPEPL').AsInteger:=TypPl;
ibqPlanNume.UpdateTransaction.StartTransaction;
(ibqPlanNume.FieldByName('NOTE') as TBlobField).AsString:=UTF8ToCP1251(KomentPl);
ibqPlanNume.Post;
end;
Если сработает, будем смотреть почему не срабатывает авто запуск транзакции.
Blob в IB живет отдельной жизнью, работа с ним идет не так как с обычными данными. Если при работе с данными транзакцию можно запустить во время метода Post, когда данные пересылаются на сервер, то при обращении к Blob полю данные тут-же отправляются на сервер, поэтому транзакцию нужно запускать отдельно, независимо от DataSet.Post.