-
Может кто знает: Sql := 'begin' + #13#10 + ' :res := pcg_ls.set_dol_subabn_ ( :idkng, :nmabn, :nnsubabn, :dtdate, :kfdol, :idusr);' + #13#10 + 'end;' ; while not memDol.Eof do begin fSession.ExecSQLEx(Sql1, [ 'idkng', fSubabn.ID_KNG, 'nmabn', fSubabn.NM_ABN, 'nnsubabn', memDol.FieldByName('NN_SUBABN').AsInteger, 'dtdate', deDate.Date, 'kfDol', StrToInt( Trim( memDol.FieldByName('DOL').AsString ) ), 'idusr', fId_Usr ]); //} finally memDol.Next; end; Процедура pcg_ls.set_dol_subabn_ - рабочая, проверял. Данный блок может выполниться нормально, а может, что бывает намного чаще, вывалить AV и открывается окно CPU. fSession: TOraSession; memDol: TdxMemData; в memDol вводятся значения вручную. Может тут что не так?
-
finally - эт лишнее
-
> Sql := 'begin' + #13#10 + > ' :res := pcg_ls.set_dol_subabn_ ( :idkng, > :nmabn, :nnsubabn, :dtdate, :kfdol, :idusr);' + #13#10 + > 'end;' ; > while not memDol.Eof do > begin > fSession.ExecSQLEx(Sql1, [ > 'idkng', fSubabn.ID_KNG, > > 'nmabn', fSubabn.NM_ABN, > > 'nnsubabn', memDol.FieldByName('NN_SUBABN'). > AsInteger, > 'dtdate', deDate.Date, > 'kfDol', StrToInt( Trim( > memDol.FieldByName('DOL').AsString ) ), > 'idusr', fId_Usr > ]); //} > finally > memDol.Next; > end;
Может иза этог?
-
прошу прощения - sql1 - это опечатка, в коде все правильно
-
если же вместо выполнения процедуры выполняю запросы типа select, insert, delete, вместе выполняющие те же действия, то все работает.
|