服务器端 os winserver2003   sever sql2005
客户端   os  winxp和win2000混杂,数十台
同一个程序,同一个功能,从数据库读取数据,处理后用TStringGrid显示出来。奇怪的是,客户端是win2000时数据显示正常,xp是却显示成  正常数据的100倍,显示不正常这是不是代码的问题,还是哪方面的,实在搞不懂,请教大家了。

解决方案 »

  1.   

    应该跟xp没关系,因为我的同事就是xp,我的程序在他的机器上没问题呀,另外在好几台装有xp的机器上都没问题。我的是2000,也没问题。建议你这样试一下:你可以将数据输出到一个列表框中或文件中,然后看数据到底是不是和stringgrid中的一样,如果一样,说明数据就是这样的(你是否得看看你的查询sql);如果不一样并且列表框和文件中的才识正确的输出,那么肯定是数据在写入stringgrid中处理的不对了。另外,你还可以看看stringgrid中的数据是否有规律,是完全一样的输出了100倍,这是不是执行了什么循环导致......再仔细查查代码。有时候,程序就是这样,会变得莫名其妙,但大部分情况下还是我们代码写得有问题。
      

  2.   

    可能出在自符转换上简单一个办法先试验一下,就是传值的时候不要用转换函数,直接使用ADO的StringGrid.Cells[1,1]:=ADOQuery1.FieldByName('数值字段').AsString;
      

  3.   

    我前天也是这样的,我们公司用的服务器也是2003,另外的电脑有2000的,也有XP的,结果2000的可以运行,XP的不行,后来我把ADOCONNECTTION那里改成,改成IP地址连接,刚刚开始是按用户名连接的,改了后就可以了,不知道楼主那里是不是也是这个原因 
      

  4.   

    6楼的可以考虑在2003上做一个Wins服务器解决这个问题
      

  5.   

    感谢各位的支持,解决以后给各位加分。我再详细的说一下,服务器端 os winserver2003   sever sql2005 
    客户端   os  winxp和win2000混杂,数十台 
    同一个程序,同一个功能,从数据库读取数据,处理后用TStringGrid显示出来。 奇怪的是,客户端是win2000时数据显示正常,xp是却显示成  正常数据的100倍,显示不正常还有如果用我自己的开发环境测试,xp就不出现这个问题了 如果服务器是 sql2000的话,也不会有这样的问题。delphi5,用bde连接的。
      

  6.   

    没有winserver2003   sever和 sql2005,所以不能搭建和你一样的环境。看见你用delphi5,bde,就是想提醒你一下是否安装了delphi5的补丁,并且补丁中还专门有一个是bde的,如这些没有装,可以装了再试试。  
      

  7.   

    谢谢楼上的,你觉得有没有可能是BDE的问题,对sql2005支持不够,让客户升级bde,你觉得可行吗。
      

  8.   


    估计和BDE关系不大另外,BDE到D5以后就再也没有升级,你用的已经是最新版本。