3231

Кто работал в Delphi cо связкой IBQuery+IBUpdateSQL?

Есть тут проблемы..Может кто поможет? Возникла непонятная проблема со связкой IBQuery + IBUpdateSQL. (редактируемый запрос) В свойстве ModifySQL компонента IBUpdateSQL прописываем: UPDATE NEW_TABLE SET L2=:L2, L3=:L3 WHERE L2=:OLD_L2 При подтверждении изменений возникает ошибка: "EInterBaseError with Message: UPDATE FAILED". Не могу найти причину этому. Если у кого есть примеры работы IBQuery + IBUpdateSQL пришлите пожайлуста сюда: lt_dennis@moldova.ccПостараюсь как можно более подробней... Часть файла формы (*.dfm) object IBUpdateSQL1: TIBUpdateSQL RefreshSQL.Strings = ( ''Select '' '' L2,'' '' L3'' ''from new_table '' ''where'' '' L2 = :L2'') ModifySQL.Strings = ( ''update new_table'' ''set'' '' L2 = :L2,'' '' L3 = :L3'' ''where'' '' L2 = :OLD_L2'') InsertSQL.Strings = ( ''insert into new_table'' '' (L2, L3)'' ''values'' '' (:L2, :L3)'') DeleteSQL.Strings = ( ''delete from new_table'' ''where'' '' L2 = :OLD_L2'') Left = 264 Top = 16 end object IBQuery1: TIBQuery Database = IBDatabase1 Transaction = IBTransaction1 AfterInsert = IBQuery1AfterInsert BeforeDelete = IBQuery1BeforeDelete BeforeEdit = IBQuery1BeforeEdit BeforePost = IBQuery1BeforePost CachedUpdates = True SQL.Strings = ( ''select L2,L3 from NEW_TABLE'') UpdateObject = IBUpdateSQL1 Left = 96 Top = 32 end object DataSource1: TDataSource DataSet = IBQuery1 Left = 368 Top = 168 end Таблица New_Table: L2 VARCHAR(100), L3 FLOAT Фрагмент исходника: implementation uses IB; {$R *.DFM} var Data:String; procedure TForm1.Button1Click(Sender: TObject); begin IBQuery1.Open; end; procedure TForm1.Button2Click(Sender: TObject); begin IBQuery1.Close; end; procedure TForm1.IBQuery1AfterInsert(DataSet: TDataSet); begin IBUpdateSQL1.SetParams(ukInsert); end; procedure TForm1.IBQuery1BeforeDelete(DataSet: TDataSet); begin IBUpdateSQL1.SetParams(ukDelete); end; procedure TForm1.IBQuery1BeforePost(DataSet: TDataSet); begin try //IBUpdateSQL1.SetParams(ukModify); //IBUpdateSQL1.Query[ukModify].Close; //IBUpdateSQL1.Query[ukModify].ParamByName(''L2'').AsString:=IBQuery1.FieldByName(''L2'').AsString; //IBUpdateSQL1.Query[ukModify].ParamByName(''L3'').AsFloat:=IBQuery1.FieldByName(''L3'').AsFloat; //IBUpdateSQL1.Query[ukModify].Prepare; //IBTransaction2.StartTransaction; //IBUpdateSQL1.Apply(ukModify); //IBUpdateSQL1.Query[ukModify].Open; //IBTransaction2.Commit; //IBUpdateSQL1.Query[ukModify].Close; except on Er:EIBInterBaseError do ShowMessage(IntToStr(Er.SQLCode)); end; end; procedure TForm1.Button3Click(Sender: TObject); begin if IBQuery1.Active then IBQuery1.ApplyUpdates; end; procedure TForm1.IBQuery1BeforeEdit(DataSet: TDataSet); begin Data:=IBQuery1.FieldByName(''L2'').AsString; end; end. Не знаешь ли кого-нибудь, кто уже работал со связкой IBQuery + IBUpdateSQL? Было ли у кого что либо подобное и как обошли если было? Заранее благодарен, LieutenantP.S. Где ещё есть форумы для программистов (в Молднете, кроме Eloffice.com)?
0