with ADOQ_CXJH do
    begin
      close;
      sql.Clear;
      sql.Add('update  scxt_zzptz  set rwh=:rwh,ZPDX=:ZPDX where vin=:lsh');
      Parameters.ParamByName('rwh').Value:=cdt_newrwh.text;
      Parameters.ParamByName('ZPDX').Value:=dx;
      Parameters.ParamByName('lsh').Value:=ADOQ_ZPJHDZ.FieldByName('lsh').AsString;
      Prepared;
      ExecSQL;
    end;
这真是怪事,本语句在我的开发环境下没错,但在别的客户端不执行,是怎么回事???
dm_Data.ADOConn_MANSYS.ConnectionString := 'Provider=MSDAORA.1;Password=scxt;User ID=mansys;Data Source=prod;Persist Security Info=True';

解决方案 »

  1.   

    改为这样试试,Parameters.ParamByName('rwh').AsString
      

  2.   

    有没有什么提示信息?是不是客户机的odbc没有配置啊?
      

  3.   

    我是通过ado连接的,如何查看权限
      

  4.   

    参数不能用Parameters.ParamByName('rwh').AsString
      

  5.   

    1.是执行 
    2.我正确连接了服务器 
    3.客户端和我本机连接的是同一个服务器中的同一个数据库
    4.同样的程序,在我本机上没问题,但在其他部门机子上运行
       with ADOQ_XGWLBMTZ do
        begin
          close;
          sql.Clear;
          sql.Add('update  scxt_zzptz  set wlbm=:wlbm where rwh=:rwh');
          Parameters.ParamByName('wlbm').Value:=cxTextEdit2.text;
          Parameters.ParamByName('rwh').Value:=cdt_oldrwh.Text;
          Prepared;
          ExecSQL;
        end;
     给cxTextEdit2.text赋值后,wlbm字段值没有变化。
      

  6.   

    这个没什么问题的,用什么都行的。
    楼主还是没有把错误现象说明白,看来只能瞎猜了。
      with ADOQ_XGWLBMTZ do 
        begin 
          close; 
          sql.Clear; 
          sql.Add('update  scxt_zzptz  set wlbm=:wlbm where rwh=:rwh'); 
          Parameters.ParamByName('wlbm').Value:=cxTextEdit2.text; 
          Parameters.ParamByName('rwh').Value:=cdt_oldrwh.Text; 
          Prepared; 
          ExecSQL; 
        end; 改为
      with ADOQ_XGWLBMTZ do 
        begin 
          close; 
          sql.Clear; 
          sql.Add('update scxt_zzptz set wlbm =' + QuotedStr(cxTextEdit2.text) + ' where rwh= ' + Quotedstr(cdt_oldrwh.text)); 
          Prepared; 
          ExecSQL; 
        end; 
    可能原因:
      如果用参数列表时,当参数有空值时,即'',可能会出错,如果用ODBC会提示错误的,但用ADO好像不提示错误,但也不执行。所以不用参数列表会消除这个引发的错误。这是我在年前才明白的事情。
      

  7.   

    不好意思,把ClientDateSet混在一起了,
    可以试一下楼上的方法,我原来也遇到类似的问题,用参数传递,edit的值传递过去出现了乱码,后面改成楼上的方法就不会了.
      

  8.   

    另外看看是不是cdt_newrwh.text返回的字符串中有其它符号,因为格式化显示。
      

  9.   

    采用楼上几位的方法试试吧,参数可能有一定的格式要求,直接用sql语句吧
      

  10.   

    ODBC连接字符串用工具测试下,这样的问题大多是连接问题,还有就是你的数据类型一定得注意
      

  11.   


    'lsh' 是什麼類型的??就是字符串還是??
      

  12.   

    最后来个open;你要抓个出错图,估计就很简单解决了。