Foxpro数据导入到sql Server 2000

时间:2023-02-06 10:06:46
首先:谢谢各位来捧场!
------------------
PS:
本地计算机安装的为:VF 7.0,在本地机器上面建立一个DBF文件,则,以下sql数据能够执行通过:

INSERT  INTO  ZYYL SELECT blh,brxm,xb,nl,bq,ch,ryrq,zz,dw from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=d:\PUBDATA','select * from [zyyl.dbf]')
问:

我将服务器上存放数据的硬盘映射到本地盘为:H盘.按照上面能通过sql语句改写为:
服务器上的VF 为2.6版本
INSERT  INTO  ZYYL SELECT blh,brxm,xb,nl,bq,ch,ryrq,zz,dw from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=H:\PUBDATA','select * from [zyyl.dbf]')

出现已下问题:
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。 
[OLE/DB provider returned message: Microsoft Jet 数据库引擎找不到对象'zyyl.dbf'。请确定对象是否存在,并正确地写出它的名称和路径。]
------------
PS:我曾搜索CSDN一篇邹(ZJCXC)回复帖子,所使用语句如下:
  select   *   from   openrowset('MSDASQL','Driver=Microsoft   Visual   FoxPro   Driver;SourceType=DBF;SourceDB=H:\PUBDATA', 'select   *   from   [ZYYl.DBF]') --aa.dbf是文件名  

报已下错误:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL' 报错。 
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序] 
-----------------
等到大家的回答

14 个解决方案

#1


应该是权限的问题吧
记得是要在sql server所在服务器上建立一个和dbf所在服务器相同的管理员
并且把sql server服务用这个帐号启动。

#2


谢谢楼上回答
权限问题可以排除
我使用BDE对服务器的 DBF文件技能查询的时候
"select * from zyyl"(BDE连接后的zyyl)是执行成功的!

#3


主是要你是用的映射,sql server 在访问映射盘是会存在这个权限的问题:


参考下这个吧,意思是一样的:
SQL Server 2000下将数据库直接备份到网络上其它计算机硬盘:

具体方法如下:

1.两台机器(数据库所在的机器和存放备份文件的机器)都需要建一个同名同密码的用户,方便起见,最好将这两个用户都直接归到管理员组下;
2.将数据库的启动帐户设置成刚才所建立的那个帐户,并重新开启SQL服务;
3.假设远程机器的IP是192.168.61.234,共享为默认共享f$,先用查询分析器登陆到本地的SQL服务器(用sa和信任模式都可以),在 master下执行xp_cmdshell 'dir \\192.168.61.234\f$'看有没有结果,还是有报错的,如有报错,请根据错误提示检查;
4.执行以下备份语句可将数据库备份到远程硬盘上,以crm2k为例:
backup database crm2k to disk='\\192.168.61.234\f$\crm2k0722_2.dmp'
5.同时注意,一定要用“\\机器名或IP”不能用映射的盘符。

注释:
直接备份到远程硬盘并不是个好主意,一方面速度慢,另一方面网络传输过程中可能出现意外。还是直接备份到本地,再拷到远程硬盘的好,用SQL的脚本可以调用:“调用master..xp_cmdshell 'copy...'实现。”

另外,xp_cmdshell是一个个十分有用的扩展存储过程,它可以在SQL中执行WINDOWS的命令行命令,在使用SQL过程中益处很大。

本机备份和还原数据库的Transact-SQL实现如下:

backup database 数据库名称 to disk = 'C:\DATA1'(具体选择实际的路径名称)
restore database 数据库名称 from disk = 'C:\yuhua.bak'(具体选择实际的路径名称)

#4


我并不是把本地数据备份到远程硬盘
而是把服务器Foxpro的数据导入本地的sql数据库进行查询!
  

#5


perfectaction 你所提到的第1.2点已经做到了 
我使用的IPX协议!(意为IP地址不存在)
Netware网络进行的数据访问!

#6


个人判断为:服务器上的VPF 版本与我本地所使用的VPF版本不同所产生的结果
服务器为FOXPRO2.6  我的本地机器为foxPRo 7.0(可以使用'MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=H:\PUBDATA' ) 
才会产生
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。 
[OLE/DB provider returned message: Microsoft Jet 数据库引擎找不到对象'zyyl.dbf'。请确定对象是否存在,并正确地写出它的名称和路径。] 
------------ 

#7


master下执行xp_cmdshell 'dir H:'
是否可以看到H的内容呢?

#8


output
1:系统找不到指定路径
2:null

#9


引用 8 楼 qq22345111 的回复:
output
1:系统找不到指定路径
2:null


那不完了.仔细看我3楼给你贴的东西吧。

#10


你映射的目录有问题,
按照P.A说的,做好映射 H:\

#11


引用 10 楼 hery2002 的回复:
你映射的目录有问题, 
按照P.A说的,做好映射 H:\

o,如果是备份的话,
最好是Copy到本地处理,

#12


我把服务器映射到本地机器为"H"盘以后
直接双击盘符后能够打开里面的DBF文件
可是sql打不开
太郁闷了

#13


拷贝都本地处理吧,

#14


我也想直接copy映射盘的数据到本地在处理啊
哎!
问题是使用软件的哪个人不会啊

#1


应该是权限的问题吧
记得是要在sql server所在服务器上建立一个和dbf所在服务器相同的管理员
并且把sql server服务用这个帐号启动。

#2


谢谢楼上回答
权限问题可以排除
我使用BDE对服务器的 DBF文件技能查询的时候
"select * from zyyl"(BDE连接后的zyyl)是执行成功的!

#3


主是要你是用的映射,sql server 在访问映射盘是会存在这个权限的问题:


参考下这个吧,意思是一样的:
SQL Server 2000下将数据库直接备份到网络上其它计算机硬盘:

具体方法如下:

1.两台机器(数据库所在的机器和存放备份文件的机器)都需要建一个同名同密码的用户,方便起见,最好将这两个用户都直接归到管理员组下;
2.将数据库的启动帐户设置成刚才所建立的那个帐户,并重新开启SQL服务;
3.假设远程机器的IP是192.168.61.234,共享为默认共享f$,先用查询分析器登陆到本地的SQL服务器(用sa和信任模式都可以),在 master下执行xp_cmdshell 'dir \\192.168.61.234\f$'看有没有结果,还是有报错的,如有报错,请根据错误提示检查;
4.执行以下备份语句可将数据库备份到远程硬盘上,以crm2k为例:
backup database crm2k to disk='\\192.168.61.234\f$\crm2k0722_2.dmp'
5.同时注意,一定要用“\\机器名或IP”不能用映射的盘符。

注释:
直接备份到远程硬盘并不是个好主意,一方面速度慢,另一方面网络传输过程中可能出现意外。还是直接备份到本地,再拷到远程硬盘的好,用SQL的脚本可以调用:“调用master..xp_cmdshell 'copy...'实现。”

另外,xp_cmdshell是一个个十分有用的扩展存储过程,它可以在SQL中执行WINDOWS的命令行命令,在使用SQL过程中益处很大。

本机备份和还原数据库的Transact-SQL实现如下:

backup database 数据库名称 to disk = 'C:\DATA1'(具体选择实际的路径名称)
restore database 数据库名称 from disk = 'C:\yuhua.bak'(具体选择实际的路径名称)

#4


我并不是把本地数据备份到远程硬盘
而是把服务器Foxpro的数据导入本地的sql数据库进行查询!
  

#5


perfectaction 你所提到的第1.2点已经做到了 
我使用的IPX协议!(意为IP地址不存在)
Netware网络进行的数据访问!

#6


个人判断为:服务器上的VPF 版本与我本地所使用的VPF版本不同所产生的结果
服务器为FOXPRO2.6  我的本地机器为foxPRo 7.0(可以使用'MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=H:\PUBDATA' ) 
才会产生
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。 
[OLE/DB provider returned message: Microsoft Jet 数据库引擎找不到对象'zyyl.dbf'。请确定对象是否存在,并正确地写出它的名称和路径。] 
------------ 

#7


master下执行xp_cmdshell 'dir H:'
是否可以看到H的内容呢?

#8


output
1:系统找不到指定路径
2:null

#9


引用 8 楼 qq22345111 的回复:
output
1:系统找不到指定路径
2:null


那不完了.仔细看我3楼给你贴的东西吧。

#10


你映射的目录有问题,
按照P.A说的,做好映射 H:\

#11


引用 10 楼 hery2002 的回复:
你映射的目录有问题, 
按照P.A说的,做好映射 H:\

o,如果是备份的话,
最好是Copy到本地处理,

#12


我把服务器映射到本地机器为"H"盘以后
直接双击盘符后能够打开里面的DBF文件
可是sql打不开
太郁闷了

#13


拷贝都本地处理吧,

#14


我也想直接copy映射盘的数据到本地在处理啊
哎!
问题是使用软件的哪个人不会啊