大家好:
    我用adoquery控件往sql server2000表中插入记录,在sql语句中使用了参数,但奇怪的事情发生了,参数如果放在sql语句中不同的地方,系统有时候提示找不到参数。下边的语句可以顺利执行,:mrs这个参数放在第二个位置。
with adoquery1 do
begin
close;
sql.clear;
sql.text:='insert into data(bh,rs,hao,pm,fh,sh) values(''zxc0012005'',:mrs,''123'',''矿石'',''巩义'',''安钢供应处'')';  //其中,:mrs是rs字段的参数,当:mrs放在第二个位置时系统可以顺利地执行。
prepared:=true;
execsql;
end;
end;下边的语句不能执行,系统提示找不到参数。:mrs这个参数放在最后一个位置。
with adoquery1 do
begin
close;
sql.clear;
sql.text:='insert into data(bh,hao,pm,fh,sh,rs) values(''zxc0012005'',''123'',''矿石'',''巩义'',''安钢供应处'',:mrs)';  //其中,:mrs是rs字段的参数,当:mrs放在最后一个位置时系统提示找不到参数。
prepared:=true;
execsql;
end;
end;望能得到大家的指点,谢谢!

解决方案 »

  1.   

    with adoquery1 do
    begin
    close;
    sql.clear;
    sql.text:='insert into data(bh,hao,pm,fh,sh,rs) values(''zxc0012005'',''123'',''矿石'',''巩义'',''安钢供应处'',:mrs)'; //其中,:mrs是rs字段的参数,当:mrs放在最后一个位置时系统提示找不到参数。
    parameters.parabyname('mrs').value:='avalue';//---数据类型按你数据库数据类型定型。
    prepared:=true;
    execsql;
    end;
    end;
      

  2.   

    写sql.text:='insert into data(bh,rs,hao,pm,fh,sh) values(''zxc0012005'',:mrs,''123'',''矿石'',''巩义'',''安钢供应处'')'; 语句时,不要提行,你试试
      

  3.   

    sql.text:='insert into data(bh,hao,pm,fh,sh,rs) values(''zxc0012005'',''123'',''矿石'',''巩义'',''安钢供应处'',:mrs)'; 
    測試沒什麽問題啊,是不是你的''巩义'',''那個逗號寫錯了,全角半角的問題,你再檢查看看
      

  4.   

    你执行的时候加上一句 
    adoquery1.SQL.SaveToFile('C;\123.txt');
    然后到c盘打开123,看看出来的sql语句到底是什么样子的,看看能不能在查询分析器中运行