Проблемы с параметрами

Исраил
Дата: 18.11.2007 23:57:24
Добрый у меня вот такая вот проблема. Делаю программу в Делфи 7. Имеется база на акцесс 2003. Хочу при помощи запроса добавить в таблицу данные используя информацию с форму путем передачи ее в параметры. получился вот такой код
В таблице первичный ключ ID_Client. его я передавать как параметр не стал. Он вроде должент сам автоинкременто добавлятся. После исполнения добавляется пустая строка, только первичный ключ (поле Id_Client) имеет значение. Ошибок при исполнении код не дает почему то.

procedure TFClientRed.BitBtn1Click(Sender: TObject);
begin
try
With DataMain.ADOqueryClienEdit do
begin
sql.Clear;
Parameters.Clear;

Parameters.AddParameter.Name:='Name_Client';
Parameters.AddParameter.Name:='Phone_Client';
Parameters.AddParameter.Name:='Address_Client';
Parameters.AddParameter.Name:='Rs_Client';
Parameters.AddParameter.Name:='Bank_client';
Parameters.AddParameter.Name:='KS_client';
Parameters.AddParameter.Name:='Bik_Client';
Parameters.AddParameter.Name:='inn_Klient';
Parameters.AddParameter.Name:='Kpp_Client';
Parameters.AddParameter.Name:='id_Client';
parameters.ParamValues['Name_Client']:=cxTextEdit1.Text;
parameters.ParamByName('Phone_Client').Value:=cxTextEdit9.Text;
parameters.ParamByName('Address_Client').Value:= cxTextEdit8.Text;
parameters.ParamByName('Rs_Client').Value:=cxTextEdit5.Text;
parameters.ParamByName('Bank_client').Value:=cxTextEdit4.Text;
parameters.ParamByName('KS_client').Value:=cxTextEdit6.Text;
parameters.ParamByName('Bik_Client').Value:=cxTextEdit7.Text;
parameters.ParamByName('inn_Klient').Value:=cxTextEdit2.Text;
parameters.ParamByName('Kpp_Client').Value:=cxTextEdit3.Text;
parameters.ParamByName('id_Client').Value:=Id_Client.Text;
sql.Add('Insert into tbClient (Name_Client, Phone_Client, Address_Client, Rs_Client, Bank_client, KS_client, Bik_Client, inn_Klient, Kpp_Client)');
sql.Add('VALUES (:Name_Client, :Phone_Client, :Address_Client, :Rs_Client, :Bank_client, :KS_client, :Bik_Client, :inn_Klient, :Kpp_Client)');

ExecSQL;
DataMain.ADOQueryClient.Close;
DataMain.ADOQueryClient.Open;

end;
Close;
except;
exit;
end;
end;
8-o
Дата: 19.11.2007 00:13:42
А нельзя вот так, по-простому:
    with DataMain.ADOqueryClienEdit do
    begin
      Close;
      sql.Clear;
      Parameters.Clear;
      sql.Add('Insert into tbClient (Name_Client, Phone_Client, Address_Client, Rs_Client, Bank_client, KS_client, Bik_Client, inn_Klient, Kpp_Client)');
      sql.Add('VALUES (:Name_Client, :Phone_Client, :Address_Client, :Rs_Client, :Bank_client, :KS_client, :Bik_Client, :inn_Klient, :Kpp_Client)');
      Prepared := true;

      parameters.ParamByName('Name_Client').Value := cxTextEdit1.Text;
      parameters.ParamByName('Phone_Client').Value := cxTextEdit9.Text;
      parameters.ParamByName('Address_Client').Value := cxTextEdit8.Text;
      parameters.ParamByName('Rs_Client').Value := cxTextEdit5.Text;
      parameters.ParamByName('Bank_client').Value := cxTextEdit4.Text;
      parameters.ParamByName('KS_client').Value := cxTextEdit6.Text;
      parameters.ParamByName('Bik_Client').Value := cxTextEdit7.Text;
      parameters.ParamByName('inn_Klient').Value := cxTextEdit2.Text;
      parameters.ParamByName('Kpp_Client').Value := cxTextEdit3.Text;
      parameters.ParamByName('id_Client').Value := Id_Client.Text;

      ExecSQL;

    end;
?
FlyD
Дата: 19.11.2007 08:54:10
Операция "Parameters.AddParameter.Name" лишняя...

Posted via ActualForum NNTP Server 1.4