十万火急,请在线的高手帮一下(在线等待)

railgunman 2003-08-26 09:47:00
各位高手,是这样的,我现在遇到一个难题,就是想用opendatasource函数在sql server里面(查询分析器)打开vfp6.0所创建的表?
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="D:\";Extended properties=dbase 5.0')...foxuser
我用了上面的SQL语句,但是报错:服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。
[OLE/DB provider returned message: 外部数据库驱动程序 (8961) 中的意外错误。]

各位高手,究竟怎样才能实现我想要的功能呢?


...全文
40 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
railgunman 2003-09-01
  • 打赏
  • 举报
回复
好,谢谢各位了!
railgunman 2003-08-29
  • 打赏
  • 举报
回复
那能不能用Opendatasource来解决呢?照理说opendatasource 应该比openrowset功能强大呀!
xmcheng 2003-08-29
  • 打赏
  • 举报
回复
up
zjcxc 2003-08-29
  • 打赏
  • 举报
回复
opendatasource应该不行.

而且就功能上来说,应该是两者不相上下.
railgunman 2003-08-28
  • 打赏
  • 举报
回复
师兄,能不能给我讲讲里面的具体含义呢?
railgunman 2003-08-28
  • 打赏
  • 举报
回复
railgunman 2003-08-28
  • 打赏
  • 举报
回复
厉害!能不能告诉我你是怎么解决的?
zjcxc 2003-08-28
  • 打赏
  • 举报
回复
select * from
openrowset('MSDASQL'
,'ODBC;DSN=Visual FoxPro Tables;SourceDB=c:\';'Admin';''
,'select * from [aa.dbf]')


经过:VB+ACCESS+SQL SERVER导入/导出+ODBC数据源定义
的组合测试得到的.

含义:
"MSDASQL" 指定 OLE DB 提供程序的友好名.
这个通过SQL SERVER的数据导入测试得到

"ODBC;DSN=Visual FoxPro Tables;SourceDB=c:\" 指定数据源.
这个通过VB的ADO对象连接字符串,并结合ACCESS中的链接表处理方式得到

ODBC 指定使用ODBC的连接方式
DSN=Visual FoxPro Tables 指定数据库格式是VFP
SourceDB=c:\ 指定.dbf文件的存放目录

'Admin';'' 指定登陆验证.
最开始的时候,因为没有写这项,结果走了很多弯路

'select * from [aa.dbf]' 指定要查询的.dbf文件名.
经测试,不能直接用文件名,一定要用select 的方式,这点和excel文件不同,也是因为这个原因,导致现在才出到结果.这个在VB中用ado对象打开数据库时才发现这个原因
railgunman 2003-08-27
  • 打赏
  • 举报
回复
up
zjcxc 2003-08-27
  • 打赏
  • 举报
回复
已经找到了直接的解决办法

--/* FoxPro 数据库
select * from
openrowset('MSDASQL'
,'ODBC;DSN=Visual FoxPro Tables;SourceDB=c:\';'Admin';''
,'select * from [aa.dbf]')
--*/
zjcxc 2003-08-27
  • 打赏
  • 举报
回复
已经找到了直接的解决办法

--/* FoxPro 数据库
select * from
openrowset('MSDASQL'
,'ODBC;DSN=Visual FoxPro Tables;SourceDB=c:\';'Admin';''
,'select * from [aa.dbf]')
--*/
zjcxc 2003-08-27
  • 打赏
  • 举报
回复
经过N次努力,终于搞定了这个问题

--/* FoxPro 数据库
select * from
openrowset('MSDASQL'
,'ODBC;DSN=Visual FoxPro Tables;SourceDB=c:\';'Admin';''
,'select * from [aa.dbf]')
--*/
railgunman 2003-08-26
  • 打赏
  • 举报
回复
up
yoki 2003-08-26
  • 打赏
  • 举报
回复
你可以用dao或ado访问呀
dao:

Set dbOpenFile = DBEngine.Workspaces(0).OpenDatabase("d:\", False, False, "dBASE 5.0;")


ado:

cnSource.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" d:\ ";Extended Properties=dBASE 5.0;Persist Security Info=False"
A_ZHU 2003-08-26
  • 打赏
  • 举报
回复
帮你Up!


我看关键在VFP的ISAM的名称!
railgunman 2003-08-26
  • 打赏
  • 举报
回复
up
railgunman 2003-08-26
  • 打赏
  • 举报
回复
是这样的,那些VFP表,是一些应用程序要访问的,若是转换成Access的话,那些VFP表在不断的更新,那洋做的话,对于我现在手上的程序来说就毫无意义了!你觉得呢?
zjcxc 2003-08-26
  • 打赏
  • 举报
回复
而用ACCESS的导入/链拉表,VB的ADO和SQL的数据导入/导出能正确打开表,不知道用openrowset或opendatasource应该如何写.

楼主不能将它转换成ACCESS数据库再处理吗?
zjcxc 2003-08-26
  • 打赏
  • 举报
回复
试了很久,都是不行,不知道是否因为我没有安装VFP6.

我的方法是:
select * from
opendatasource('MSDASQL'
,'Data Source=Visual FoxPro Tables;SourceDB=C:\'
)...[aa.dbf]

如果aa.dbf文件不存在,会正常提示,可是如果存在,就出现错误:
为提供程序指定的架构或目录无效 'MSDASQL'。
OLE DB 错误跟踪[Non-interface error: Invalid schema or catalog specified for the provider.]。
TaoGeGe 2003-08-26
  • 打赏
  • 举报
回复
UP
加载更多回复(11)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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