Показать сообщение отдельно
  #1  
Старый 25.01.2013, 20:45
Gmail Gmail вне форума
Прохожий
 
Регистрация: 04.11.2012
Сообщения: 4
Репутация: 10
По умолчанию Помогите найти ошибку

Код:
procedure TForm1.Button1Click(Sender: TObject);
var n: integer;
begin
  //Добавляем в дочернюю таблицу номер телефона
  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Text := Format('INSERT INTO phones(Phone) VALUES(%s)',[QuotedStr(Edit3.Text)]);
  ADOQuery2.ExecSQL;

  //Получаем ID добавленной записи.
  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Text := Format('SELECT Id_phone FROM phones WHERE Phone = (%s)',[QuotedStr(Edit3.Text)]);
  ADOQuery2.Active := true;
  n := ADOQuery2.Fields[0].AsInteger;
  Label4.Caption:=IntToStr(n);
  ADOQuery2.Active := false;

  //Добавляем данные в главную таблицу
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Text := Format('INSERT INTO clients(name,soname,phone_id) VALUES(%s,%s,%s)',[QuotedStr(Edit1.Text),QuotedStr(Edit2.Text),QuotedStr(IntToStr(n))]);
  ADOQuery1.ExecSQL;

  //Обновляем обе таблицы
  ADOTable1.Active:=false;
  ADOTable1.Active:=true;
  ADOTable2.Active:=false;
  ADOTable2.Active:=true;

end;

Работает, но после удаления всех записей из обеих таблиц, начинает ругаться. перезапускаешь программу, снова добавляет записи...
Ответить с цитированием