在数据保存程序中,片段
sql:='insert into ......';  
ADOQuery.SQL.Add(sql);
  with ADOQuery.Parameters do
  begin
    ParamByName('fd_scth').Value:='11';
    ParamByName('fd_fdjxh').Value:=Trim(edtWkGrup.Text);//下拉列表中的值
  end;
  try
     ADOQuery.ExecSQL;
     MessageBox(0,PChar('添加数据成功!'),'提示信息', MB_ICONINFORMATION+MB_OK);
  finally
    ADOQuery.Close;保存时会提示stp 应用程序在当前操作中使用了错误的值
fd_fdjxh类型为varchar,很是奇怪?
想问问ParamByName('字段名').Value,后需什么类型,//ParamByName('fd_fdjxh').Value:=stp;后,数据可以添加到数据库中,

解决方案 »

  1.   

    ParamByName('fd_fdjxh').Value:=Trim(edtWkGrup.Text);//下拉列表中的值 
    改成ParamByName('fd_fdjxh').Value:=QuotedStr(Trim(edtWkGrup.Text));//
      

  2.   

    不知道你的SQL语句是怎么写的。单就你贴上来的代码来看,没啥问题。
    不过,ADOQuery.SQL.Add(sql);之前最好写一句:
    ADOQuery.SQL.Clear;
      

  3.   

    QuotedStr是什么意思,強制轉換碼??
      

  4.   

    谢谢各位的指点,我的问题自己解决了,with ADOQuery.Parameters do 
      begin 
        ParamByName('fd_scth').Value:='11'; 
        ParamByName('fd_fdjxh').Value:=Trim(edtWkGrup.Text);//下拉列表中的值 
      end; 改为:
    with ADOQuery do 
      begin 
        Parameters.ParamByName('fd_scth').Value:='11'; 
        Parameters.ParamByName('fd_fdjxh').Value:=Trim(edtWkGrup.Text);//下拉列表中的值 
      end; 
    即可保存数据了,