热情软件屋

 

VB ADO在SYBASE查询返回中出现数字型右面的 0 被删除的问题


编号:QA004692
建立日期: 2003年6月29日 最后修改日期:2003年6月29日
所属类别:

王渝:
    操作系统:Win
    编程工具:VB
    问题:请教VB ADO在SYBASE查询返回中出现数字型右面的 0 被删除的问题:
    程序大体为
    dim cn As ADODB.Connection
    dim rs As ADODB.Recordset
    cn.open ODBCDSN,用户名,密码 '通过ODBC连接远地的SYBASE服务器
    ....
    set rs=cn.execute("select * from ...")
    do while not (rs.bof or rs.eof)
     ..... '取出数据
     rs.movenext
    loop
    set rs=nothing
    

    问题现象:出现在查询数据返回时,对应的数值型或货币型数据的右面的 0被删除,即本应返回2000,但在rs中实际返回为2,如果应返回200100,实际返回为2001,使得数据无法使用。
    问题形成:在WIN98和winXP下时会出现此问题,升级为98ME/WIN2K版本时此问题消失,但更新MDAC为2.7版本时,此问题又出现,经在多台机器上测试,程序本身没有问题,但如何根本性的解决还请大虾们指点一两。

回答:

    我也有过类似的问题,可以不用Microsoft自己的ODBC数据库驱动程序,找一个 sybase openclient 11.9 的驱动程序,安装后,配置ODBC DSN时,选择sybase 的驱动程序,就不会出现这样的问题了,主要问题在于microsoft 的驱动是通用的。有一些配置的问题,也可以通过配置ODBC中的选项来配置,不知你是否选择sqlserver的来配置。其中有一些参数要调整后才行。

此问题由laozhuang回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio