oracl的数据库 
假设一个表table1中两个子段:field1,field2 我在程序中ADOQuery1中: 
with ADOQuery1 do
begin
  close;
  sql.clear;
  sql.add(insert into table1 (field1,field2) values(:temp1,:temp2)); 
  parametersparabyname('temp1').value=edit1.text; 
  parametersparabyname('temp2').value:=edit2.text; 
  ExecSQL;
end;当第一次运行edit1.text=test,edit2=test2  没有什么问题,数据都能够添加到表中, 
但是我第二次运行edit1.text=test,edit2=test3就出问题了 可是我程序这样写又可以: 
insert into table1 (field1,field2) values(''test'',''test3'') 可是我要动态写数据到表中啊,不知道哪位高手知道,请指点一二,不胜感谢! 

解决方案 »

  1.   

    什么错误信息;
    赋值前用
    parameters.refresh;
    试一下
      

  2.   

    你们都理解错我的意思了,我的意思是,当表中第一个字段有个test的值之后,便不能再向表中用这种方法:
    sql.add('insert into table1 (field1,field2) values(:temp1,:temp2)'); 
    parametersparabyname('temp1').value=edit1.text; 
    parametersparabyname('temp2').value:=edit2.text; 
    添加一个记录(第一个字段的值也是test),
    但用这种方法又可以向表中添加一个记录(第一个字段的值也是test):
    sql.add('insert into table1 (field1,field2) values(''test'',''test3'') ');出错提示我也不大记得了(在公司),不过我想这与表的关键字之类没有什么关系吧,不然用第二种方法也不可能行啊