采用MIDAS时,服务器采用 ado连接方式,客户端采用 TSocketconnection  连接.
  在客户端用TClientDataSet向服务器端(sql语句写在服务器端)传含有汉字参数值时出现右载位错误,而参数值为字母 、数字则可以,why? 而采用两层则没有此问题.
  在设置断点时查找错误时,提示为字符串数据右截位错误.

解决方案 »

  1.   

    将param的datatype属性换成ftFixedChar 或者ftWideString 试试
      

  2.   

    将param的datatype属性换成ftFixedChar 或者ftWideString,不行
      

  3.   

    TClientDataSet的trimstr(不知记错了没有)属性设为false
      

  4.   

    你一定用的是Delphi 5,6种这个错误没有
      

  5.   

    我知道,汉字不能使用参数值,必须直接赋值。如
    clientdataset.commandtext:='insert into 表名 values(edit1.text,edit2.text,.....)'
    select,delete同理
      

  6.   

    这个是 ADO 的问题, 半年前就有人问过了再次回答...在 DataSetProvider 的 AfterGetParams 中写到Parameters.ParamByName('xxx').Value := Length(...);重新设置长度
      

  7.   

    delphi6的bug,没有办法,升级试试看,估计还是不行!
      

  8.   

    如果还有人讨论这个问题的话,我说说我的解决方案。
    在这里问题主要是,字符串“琐琐碎碎”与'dddd'都是4,所以
    得到的汉字长度就缩短了一半,而字母和数字等就不存在问题。
    解决的话,就是手动将参数的长度设置一下。这样就能完整读取。
      

  9.   

    基本与 comanche(太可怕) 的做法相同,只不过我是写在datasetprovider的BeforeExecute里面
    Parameters.ParamByName('参数').Size=。