Вниз
Скачать: CL | DM;

Что бы это значило :   Найти похожие ветки 

← →
Mikeee ©   (2002-04-03 16:21) [0]

Подскажите, уважаемые мастера! При попытке занести данные в две таблицы выдается такое сообщение. В одну таблицу данные сохраняются методом Post. А в другую отдельным параметрическим запросом, причем один из параметров надо брать из толко что сохраненной записи из первой таблицы, другой параметр - текущая дата, третий параметр берется из третьей таблицы отдельным запросом... прмерно так:

procedure TFormMain.ButtonSaveSotrClick(Sender: TObject);
var
resulttrans:byte;
begin
resulttrans:=0;
ADOConnection1.BeginTrans;
Try
ADOQuerySotrudnic.Post;
Except
ADOConnection1.RollbackTrans;
ADOQuerySotrudnic.cancel;
resulttrans:=1;
MessageDlg("Невозможно добавить данные !", mtError, [mbOk],0);
end;
FormDolgOrder.ADOQueryDolgOrder.close;
FormDolgOrder.ADOQueryDolgOrder.SQL.Clear;
FormDolgOrder.ADOQueryDolgOrder.Parameters[0].Value:=Date;
FormDolgOrder.ADOQueryDolgOrder.Parameters[1].Value:=
ADOQuerySotrudnic.FieldByName("id_sotr").AsInteger;
FormDolgOrder.ADOQueryDolgOrder.Parameters[2].Value:=
FormDolgList.ADOQueryDolgnost.SQL.Add
("Select id_dolg from DOLGNOST were dolg_name="+DBLuCBDolg.Text);
if EditCategory.Text<>"" then
FormDolgOrder.ADOQueryDolgOrder.Parameters[3].Value:=StrToInt(EditCategory.Text)
else
FormDolgOrder.ADOQueryDolgOrder.Parameters[3].Value:=NULL;
FormDolgOrder.ADOQueryDolgOrder.SQL.Add("Insert into Dolgnost_order ");
FormDolgOrder.ADOQueryDolgOrder.SQL.Add("(date, id_sotr, id_dolg, category)");
FormDolgOrder.ADOQueryDolgOrder.SQL.Add("values (:date, :id_sotr, :id_dolg, :category)");
Try
//FormDolgOrder.ADOQueryDolgOrder.open;
FormDolgOrder.ADOQueryDolgOrder.ExecSQL;
Except
ADOConnection1.RollbackTrans;
resulttrans:=1;
MessageDlg("Невозможно добавить данные !", mtError, [mbOk],0);
end;


Может я накуролесил тут слишком или ещё что..?


← →
Mikeee ©   (2002-04-03 16:35) [1]

Упс... добавочка.

if resulttrans = 0 then ADOConnection1.CommitTrans;
ADOQuerySotrudnic.cancel;
ADOQuerySotrudnic.close;
FormDolgOrder.ADOQueryDolgOrder.close;
FormDolgList.ADOQueryDolgnost.close;



← →
Nikolay M. ©   (2002-04-03 18:38) [2]

хм...
А чего ты хотел?
Сначала делаешь .ADOQueryDolgOrder.SQL.Clear, а потом пытаешься работать с пустым запросом .ADOQueryDolgOrder.Parameters[0].Value, хотя у тебя параметров вообще не существует.

А "List index out of bounds(0)" возникает всегда, при попытке обратиться к несуществуюшему элементу списка. В данном случае - к нулевому.


← →
Mikeee ©   (2002-04-04 16:21) [3]

Вот спасибо! Свежим глазом то оно виднее.
А Query.SQL.Clear поставил по привычке...



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
14-81045
DimaIv
2002-03-18 17:19
2002.04.25
Имеется винчестер с кучей Bad Blockов можно ли сделать


14-81047
undersun
2002-03-13 17:21
2002.04.25
Как выбрать устройство через которое надо соед. по TCP/IP


3-80749
Fareader
2002-03-25 15:46
2002.04.25
Глюк DBGridEh


4-81106
mentor
2002-02-19 07:59
2002.04.25
EMail


1-81009
Demon Ltd
2002-04-13 00:05
2002.04.25
Работа повторно с меню




   Наверх