Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Вниз

Что бы это значило : 


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 поставил по привычке...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.026 c
3-80778           DEJRGU                2002-04-04 14:51  2002.04.25  
Есть ли в TSQL какая-нибудь pause ? (чтобы проверить sp)


4-81105           Oleg1                 2002-02-17 20:43  2002.04.25  
winexit


14-81066          Fellomena             2002-03-18 18:46  2002.04.25  
Возможна ли связка *.lib от Фортрана с Delphi проектами ?


1-80847           MaxLife               2002-04-12 12:26  2002.04.25  
Как вклиниться в оболочку Delphi?


3-80789           Shaman                2002-04-04 08:02  2002.04.25  
Подскажите какой-нибудь аналог TRXMemoryData для Delphi6