我在中文win98sp2,delphi6,VFP6简体中文下写的程序好好的,
但在win2000pro简体中文,delphi7,VFP6简体中文,下出现把我中文字符
截掉的错误,莫名其妙。ADO是OLE DB for ODBC,driver 是visual forpro driver
真奇怪!!!!!!
程序如下:
var
    i:Integer;
begin
    ADOConnection1.Open;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('INSERT INTO TBZQDM(ZQDM,ZQMC) VALUES(:DM,:MC)');
    try
        for i:=1 to 1000 do
        begin
           ADOQuery1.Parameters.ParamValues['dm']:='600597';
           ADOQuery1.Parameters.ParamValues['mc']:='光明乳业';
           ADOQuery1.ExecSQL;
       end;
    finally
       ADOQuery1.Close;
       ADOConnection1.Close;
    end;
end;打开数据库后zqmc只有“光明“,我的zqmc为数是够的,是8个char
真搞不懂。
郁闷中..................................

解决方案 »

  1.   

    另外,我用BDE就没出现问题,真奇怪!!!!
    乞盼赐教
    郁闷中................................
      

  2.   

    换一种方式可以吗?用字符串相加的方式构造sql
    这个一时间也高不清楚是什么问题,最大的可能性就是你的字段的类型有问题.改为varchar,最好长一点.我以前用sqlserver也出现过类似的问题,varchar(1000),开始只能存很少的几个字符,比如:200,我也记不太清楚具体的数字了,我改为text就好了
      

  3.   

    查一下ADO的Parameters属性
    当你设计时
    和DB连接会影响其中的属性
    修改DB后它的属性似乎不会做出相应变化了(不知为什么)
    就会引起字段内容的截取的现象
    手工改一下就好了我当年在这里错了一下
    发生的后果和你一样
    你可以试试顺便说一下
    Delphi同志对ADO的支持实在是