这里是对OLEDB驱动的分析。有两台计算机器:
甲:
Windows2000 server+SP4
数据驱动:
Microsoft Data Access Components (MDAC) 2.7.其中msdasql.dll 其文件修改时间2006年2月21日, 22:08:08.
Sql2000+ SP4
VB6
VF6
乙:
WindowsXP+SP2
数据驱动:
Microsoft Data Access Components (MDAC) 2.7.其中msdasql.dll 其文件修改时间大概是2006年1月2日.
Sql2000+ SP4
VB6+SP6
VF6
在查询分析器同样执行下面语句, 在甲上能够通过,但是乙通不过,非常邪门!!
select LURUFCODE from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB= e:/data',
'select LURUFCODE from C26') as a
服务器: 消息 7341,级别 16,状态 2,行 1
未能得到列 '[a].lurufcode' 的当前行的值(从 OLE DB 提供程序 'MSDASQL' 中)。
由于数据值溢出了提供程序所用数据类型的取值范围,转换失败。
[OLE/DB provider returned message: 多步 OLE DB 操作产生错误。
如果可能,请检查每个 OLE DB 状态值。没有工作被完成。]
OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IRowset::GetData returned 0x80040e21: Data status returned from the provider: [COLUMN_NAME=lurufcode STATUS=DBSTATUS_E_DATAOVERFLOW]]。
问题: 对于OLEDB提供的Driver=Microsoft Visual FoxPro Driver, 为什么在甲上能兼容LURUFCODE呢,在乙就不能兼容. 同样都是2.7中的驱动.难道这种数据的兼容还和系统有关. 真是百思不得其解!!