Запрос на добавление записи

virusserf
Дата: 17.05.2011 16:10:55
procedure TForm1.BitBtn2Click(Sender: TObject);
var str:string;
z1:integer;
z2,z3,z4,z5,z6,z7,z8,z9,z10:string;
begin
z1:=5;
z2:='Иван';
z3:='Иванов';
z4:='Шолмова';
z5:='Москва';
z6:='432000';
z7:='Московская';
z8:='Россия';
z9:='УлГТУ';
z10:='Инженер';
form1.ADOQuery2.SQL.Clear;
str:='INSERT INTO Контакты(`Код`,`Имя`,`Фамилия`,`Адрес`,`Город,`Индекс`,`Область`,`Страна`,`Компания`,`Должность`)VALUES(:z1,:z2,:z3,:z4,:z5,:z6,:z7,:z8,:z9,:z10)';
form1.ADOQuery2.SQL.add(str);
[b]form1.ADOQuery2.Parameters.ParamByName('z1').Value:=z1;[/b]-
тут выдает ошибку ,говорит что параметр z1 не найден.
form1.ADOQuery2.Parameters.ParamByName('z2').Value:=z2;
form1.ADOQuery2.Parameters.ParamByName('z3').Value:=z3;
form1.ADOQuery2.Parameters.ParamByName('z4').Value:=z4;
form1.ADOQuery2.Parameters.ParamByName('z5').Value:=z5;
form1.ADOQuery2.Parameters.ParamByName('z6').Value:=z6;
form1.ADOQuery2.Parameters.ParamByName('z7').Value:=z7;
form1.ADOQuery2.Parameters.ParamByName('z8').Value:=z8;
form1.ADOQuery2.Parameters.ParamByName('z9').Value:=z9;
form1.ADOQuery2.Parameters.ParamByName('z10').Value:=z10;
form1.ADOQuery2.ExecSQL;
form1.ADOQuery2.Close;
form1.ADOQuery2.SQL.Text:='select * from Контакты';
form1.ADOQuery2.Open;
end;



не подскажите в чем дело, вроде все верно...
RENaissance
Дата: 17.05.2011 16:15:18
virusserf, перед красной строкой надо написать: form1.ADOQuery2.Parameters.Refresh();.
Ramin Hashimzade
Дата: 17.05.2011 16:15:44
1) оформируй код на SRC что легко понять что написано
2) сдклай Prepare
Ega
Дата: 17.05.2011 16:20:38
Ramin,

TDataSet.ParamCheck + F1
Ramin Hashimzade
Дата: 17.05.2011 16:23:18
Ega
Ramin,

TDataSet.ParamCheck + F1

???
Anatoly Podgoretsky
Дата: 17.05.2011 16:28:40
Для начала заменить на TAdoCommand
Anatoly Podgoretsky
Дата: 17.05.2011 16:30:14
И что то очень подозрительные кавычки, из мира Линукс
virusserf
Дата: 17.05.2011 16:44:20
RENaissance
virusserf, перед красной строкой надо написать: form1.ADOQuery2.Parameters.Refresh();.

не помогло
virusserf
Дата: 17.05.2011 16:45:29
Anatoly Podgoretsky
Для начала заменить на TAdoCommand

что именно имеете ввиду?
virusserf
Дата: 17.05.2011 16:52:00
procedure TForm1.BitBtn2Click(Sender: TObject);
var str:string;
 z1:integer;
 z2,z3,z4,z5,z6,z7,z8,z9,z10:string;
 begin
 z1:=5;
 z2:='Иван';
 z3:='Иванов';
 z4:='Шолмова';
 z5:='Москва';
 z6:='432000';
 z7:='Московская';
 z8:='Россия';
 z9:='УлГТУ';
 z10:='Инженер';
 form1.ADOQuery2.SQL.Clear;
 str:='INSERT INTO Контакты(`Код`,`Имя`,`Фамилия`,`Адрес`,`Город,`Индекс`,`Область`,`Страна`,`Компания`,`Должность`)VALUES([color=red]5,Иван[/color],:z3,:z4,:z5,:z6,:z7,:z8,:z9,:z10)';
 form1.ADOQuery2.SQL.add(str);
// form1.ADOQuery2.Parameters.ParamByName('z1').Value:=z1;
// form1.ADOQuery2.Parameters.ParamByName('z2').Value:=z2;
 form1.ADOQuery2.Parameters.ParamByName('z3').Value:=z3;
 form1.ADOQuery2.Parameters.ParamByName('z4').Value:=z4;
 form1.ADOQuery2.Parameters.ParamByName('z5').Value:=z5;
 form1.ADOQuery2.Parameters.ParamByName('z6').Value:=z6;
 form1.ADOQuery2.Parameters.ParamByName('z7').Value:=z7;
 form1.ADOQuery2.Parameters.ParamByName('z8').Value:=z8;
 form1.ADOQuery2.Parameters.ParamByName('z9').Value:=z9;
 form1.ADOQuery2.Parameters.ParamByName('z10').Value:=z10;
 form1.ADOQuery2.ExecSQL;
 form1.ADOQuery2.Close;
 form1.ADOQuery2.SQL.Text:='select * from Контакты';
 form1.ADOQuery2.Open;
 end

Когда тупо вбил значения для первых двух- ошибку начал выдавать на 3 параметре