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

Ошибка ADOQuery.   Найти похожие ветки 

 
vikm ©   (2007-03-21 18:28) [0]

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

procedure TForm_AddPerson.AddPerson_AddBtnClick(Sender: TObject);
var
 str1, str2, str3, str4, str5: string;
begin
 if AddPerson_eSurname.Text = "" then
   begin
     MessageDlg("Вы не ввели фамилию! Повторите ввод.",mtWarning,[mbOK],0);
     AddPerson_eSurname.SetFocus;
     AddPerson_AddBtn.Enabled := False;
     Abort;
   end;
 if AddPerson_eName.Text = "" then
   begin
     MessageDlg("Вы не ввели имя! Повторите ввод.",mtWarning,[mbOK],0);
     AddPerson_eName.SetFocus;
     AddPerson_AddBtn.Enabled := False;
     Abort;
   end;
 str1 := AddPerson_eSurname.Text;
 str2 := AddPerson_eName.Text;
 str3 := AddPerson_ePatronymic.Text;
 str4 := AddPerson_eBorn.Text;
 str5 := "INSERT INTO person (surname,name,patronymic,born) VALUES(""" +
           str1 + """,""" + str2 + """,""" + str3 + """,""" + str4 + """)";
 try
   AddPerson_ADOQuery1.Close;  //закрывается запрос
   AddPerson_ADOQuery1.SQL.Clear;
   AddPerson_ADOQuery1.SQL.Add(str5);
   AddPerson_ADOQuery1.Open; //открывается запрос
 except //в случае ошибки базы данных выводится сообщение об ошибке
   on error:EDatabaseError do
     MessageDlg("Ошибка записи в базу "+error.Message+"!",mtError,[mbOK],0);
 end;
 Form_Person.Person_ADOTable1.Close;
 Form_Person.Person_ADOTable1.Open;
 AddPerson_AddBtn.Enabled := False;
 AddPerson_eSurname.Text := "";
 AddPerson_eName.Text := "";
 AddPerson_ePatronymic.Text := "";
 AddPerson_eBorn.Text := "";
 AddPerson_eSurname.SetFocus;
end;

При нажатии кнопки возникает ошибка:
AddPerson_ADOQuery1: CommandText does not return a result set.
Хотя после нажатии кнопки ОК данные в базу добавляются.Как поборото ошибку?


 
Desdechado ©   (2007-03-21 18:32) [1]

> AddPerson_ADOQuery1.Open; //открывается запрос
Открывается не запрос, а набор данных (Result set). Но твой запрос INSERT такого вернуть не может, поэтому ошибка. Используй метод ExecSQL.


 
vikm ©   (2007-03-21 18:39) [2]

Спасибо, всем вопрос закрыт. Только что и сам понял, что нужно использовать метод ExecSQL. Проверил, все работает ОК. Отдельное спасибо Desdechado.



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

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



Память: 0.45 MB
Время: 0.026 c
2-1174747778
Malik
2007-03-24 17:49
2007.04.15
Вот про TStrings


11-1156082362
thaddy
2006-08-20 17:59
2007.04.15
Corrected Koldef.inc for D8-D2005-D2006


2-1174745845
Михаил Н
2007-03-24 17:17
2007.04.15
Работа с датой


6-1161717785
Psychedelic
2006-10-24 23:23
2007.04.15
Socks proxy компонент


2-1173974506
Washington
2007-03-15 19:01
2007.04.15
Оформление




   Наверх