用sql语句从dbf中读取?

lihongf 2003-11-14 09:10:35
需要用到别人传来的dbf文件,我是这样读的:
select dj from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\jsbold\a2003文件夹','select * from [slk0301.DBF]')
有错误提示为 :
服务器: 消息 7341,级别 16,状态 2,行 1
未能得到列 '[MSDASQL].dj' 的当前行的值(从 OLE DB 提供程序 'MSDASQL' 中)。由于数据值溢出了提供程序所用数据类型的取值范围,转换失败。
[OLE/DB provider returned message: 多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。]

这个dj字段在vfp中是numeric 5 3,就是说有三位小数,如何用sql语句正确的读出来呢?
...全文
84 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-11-14
  • 打赏
  • 举报
回复
恭喜.恭喜.
youngby 2003-11-14
  • 打赏
  • 举报
回复
UP
lihongf 2003-11-14
  • 打赏
  • 举报
回复
我已搞定
select dj from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\jsbold\a2003文件夹','select ntom(dj) from [slk0301.DBF]')
愉快的登山者 2003-11-14
  • 打赏
  • 举报
回复
检查原slk0301.DBF文件中的数据是否规范合理.
先用少些数据进行测试,找出原因.
lihongf 2003-11-14
  • 打赏
  • 举报
回复
to 没风格
读不出来,谈何导入?
lihongf 2003-11-14
  • 打赏
  • 举报
回复
to 邹建:
问题依旧
kseven 2003-11-14
  • 打赏
  • 举报
回复
我认为可以先导入数据库
导入如果正确,那再sql中查询肯定没问题
zjcxc 元老 2003-11-14
  • 打赏
  • 举报
回复
--试试:
select convert(decimal(5,3),dj) from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\jsbold\a2003文件夹','select * from [slk0301.DBF]')
txlicenhe 2003-11-14
  • 打赏
  • 举报
回复
字段类型不对?
如果只是select应该没有问题啊,你是在insert吧?

我见过的所有多步操作错误信息都是因为字段类型不对或字段长度不对引起的。

34,653

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧