procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.sql.Clear ;
adoquery1.SQL.add('insert into temp_data(data_code,data_desc,data_type,data_long,data_flag) values(:T_1,:T_2,:T_3,:T_4,:T_5)');
adoquery1.Parameters.ParamByName('T_1').value:='GAB000';
adoquery1.Parameters.ParamByName('T_2').value:='乱七八糟';
adoquery1.Parameters.ParamByName('T_3').value:='C';
adoquery1.Parameters.ParamByName('T_4').value:='3';
adoquery1.Parameters.ParamByName('T_5').value:='Y';
adoquery1.ExecSQL ;
end;
这段程序执行没有问题,但数据库内没有写入记录,请问程序错在哪儿,我想应该是参数传递问题,请哪位有耐心的大侠帮忙检查一下。
begin
adoquery1.Close;
adoquery1.sql.Clear ;
adoquery1.SQL.add('insert into temp_data(data_code,data_desc,data_type,data_long,data_flag) values(:T_1,:T_2,:T_3,:T_4,:T_5)');
adoquery1.Parameters.ParamByName('T_1').value:='GAB000';
adoquery1.Parameters.ParamByName('T_2').value:='乱七八糟';
adoquery1.Parameters.ParamByName('T_3').value:='C';
adoquery1.Parameters.ParamByName('T_4').value:='3';
adoquery1.Parameters.ParamByName('T_5').value:='Y';
adoquery1.ExecSQL ;
end;
这段程序执行没有问题,但数据库内没有写入记录,请问程序错在哪儿,我想应该是参数传递问题,请哪位有耐心的大侠帮忙检查一下。
showmessage(adoquery1.sql.text);
结果为
insert into temp_data (
data_code,data_desc,data_type,data_long,data_flag)
values(?,?,?,?,?)
但不知为何会如此。
以下不是很好吗?如果要变的,就用几个变量代替多简单啊。
procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.sql.Clear ;
adoquery1.SQL.add('insert into temp_data(data_code,data_desc,data_type,data_long,data_flag) values('GAB000','乱七八糟','C','3','Y')');
adoquery1.ExecSQL ;
end;
换ADODataset试一下呀!
检查的结果为:
insert into temp_data (
data_code,data_desc,data_type,data_long,data_flag)
values(?,?,?,?,?)既然是字符型的起码应该在字符的两端用引号才对。
如 insert into Temp_data (Data_code) values ('fdsafd');如果你在执行时启用了事务,虽然执行了,没有提交,那也没有执行结果。
好好检查吧!
如果你用 MS SQL
procedure TForm1.Button2Click(Sender: TObject);
begin
adoquery1.active:=true;
adoquery1.Close;
adoquery1.sql.Clear ;
adoquery1.SQL.add('insert into temp_data(data_code,data_desc,data_type,data_long,data_flag) values(:T_1,:T_2,:T_3,:T_4,:T_5)');
adoquery1.Parameters.ParamByName('T_1').value:='GAB000';
adoquery1.Parameters.ParamByName('T_2').value:='乱七八糟';
adoquery1.Parameters.ParamByName('T_3').value:='C';
adoquery1.Parameters.ParamByName('T_4').value:='3';
adoquery1.Parameters.ParamByName('T_5').value:='Y';
adoquery1.ExecSQL ;
end;