日期:2014-05-17  浏览次数:20368 次

关于OpenRowSet读取VFP的数据问题
需要把VFP6.0的数据dbf文件导入SQL2000里。
使用命令如下
insert Into xf select * from openrowset('MSDASQL','DRIVER=Microsoft Visual FoxPro Driver;SourceDB=D:\data;SourceType=DBF','select icbh,ntom(icje),ntom(usemon),rq,time,jqbh,jcs from xf where between(rq,{^2012-09-16},{^2012-09-30})')

下发现有个怪现象,就是导入的数据和VFP原来的数据不一致。
也就是 在SQL执行命令:
select * from openrowset('MSDASQL','DRIVER=Microsoft Visual FoxPro Driver;SourceDB=D:\data;SourceType=DBF','select icbh,ntom(icje),ntom(usemon),rq,time,jqbh,jcs from xf where between(rq,{^2012-09-16},{^2012-09-30})') 
结果为:22284行

VFP里执行命令:
select icbh,ntom(icje),ntom(usemon),rq,time,jqbh,jcs from xf where between(rq,{^2012-09-16},{^2012-09-30})
结果为:22314行

以上2条命令应该是等价的啊,为什么出现这样的问题?
请各位大大释疑。谢谢!




------解决方案--------------------
如果都改成 select* from xf
结果一致不?
------解决方案--------------------
去掉between条件也不一致么?。。。
------解决方案--------------------
弱弱的说一句 你操作的是同一个文件吧
------解决方案--------------------
参考