转VFP数据库到SQL

coffeedou 2005-10-10 01:49:10
DBF的数据库,想用VFP编个程序,把它转到SQL SERVER的一个表里面
对VFP不熟,以前摸过
哪位仁兄帮帮我,有代码最好
我想应该是建两个数据库连接,实在不行就一条条添加
不象PB吧,有管道
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffeedou 2005-10-10
  • 打赏
  • 举报
回复
MSDASQL.DLL注册失败,说找不到指定的模块
regsvr32 C:\WINDOWS\system32\dllcache\msdasql.dll
coffeedou 2005-10-10
  • 打赏
  • 举报
回复
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL' 报错。
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能]
OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IDBInitialize::Initialize returned 0x80004005: ]。
淡蓝冰 2005-10-10
  • 打赏
  • 举报
回复
直接建ODBC﹐再從VFP中導到SQL中不行吧﹖
還有一種就是寫程序來導﹗
十豆三 2005-10-10
  • 打赏
  • 举报
回复
请参考:

----------DBF 导入 SQL----------

以下均以SQL2000、VFP6及以上的表为例


方法一:查询分析器中执行如下语句(先选择对应的数据库)

--如果接受导入数据的SQL表已经存在
insert into 已经存在的SQL表名 select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')

--也可以对应列名进行导入,如:
insert into 已经存在的SQL表名 (列名1,列名2...) select (对应列名1,对应列名2...) from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')



--如果接受导入数据的SQL表已经不存在,导入时创建
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from aa.DBF')

--也可以只导几个字段
select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select 字段1,字段2 from aa.DBF')

/*--说明:
SourceDB=c:\ c:\是dbf文件的存放目录
aa.DBF 是dbf文件名
--*/



方法二:通过SQL Server的“导入导出数据”工具(DTS)

1、建立Visual FoxPro的数据源:

在ODBC中建立一个Visual FoxPro的数据源(ODBC-Microsoft Visual FoxPro Driver)的步骤如下:
打开ODBC配制窗口 ->
选择“用户DSN”页面或“系统DSN”页面,建议用后者 ->
点击“添加”按钮 ->
选择“Microsoft Visual FoxPro Driver”这个驱动 ->
在Data Source Name(数源源名称)处输入此数据源名称,可自定,本例如LjDbf,Database Type(数据库类型)处选择“Free Table directory”(自由表路径),然后在下面的Path(路径)处设置你要导入的DBF表所在的路径,本列如“D:\” ->
点击“OK”(确定)配制完成 ->
关闭ODBC配制窗口

2、通过SQL的导入导出数据(DTS)来把DBF表导成SQL表:

开始 ->
程序 ->
Microsoft SQL Server-导入导出数(DTS)->
下一步 ->
此步为“选择数据源”的窗口,“数据源”选“Microsoft Visual FoxPro Driver”,同时在"用户/系统DSN"处选择你刚刚配制的数据源名(本例如LjDbf,当然上面配制数据源的过程也可以通过“用户/系统DSN”后面有一个“新建”按钮来完成),然后点击“下一步” ->
此步为“选择目的”的窗口,“目的”选"用于SQL Server的Microsoft OLE DB提供程序"(此项一般为默认),同时选择你要导成的SQL表的存放数据库、服务器及服务器的验证方式,然后点击“下一步” ->
这时:
A:如果要把DBF表全部字段均导入,则选择“从源数据库复制表和视图”,点击“下一步” ->
选择要导入的DBF表,在‘目的’处可修改生成SQL表的名称,默认与DBF表名一样,点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导入即可(导入成功与否DTS会有提示)。

B:如果只导入DBF表中的几个字段或全部字段(如果导入全部字段,也可以用上面步骤A,结果是一样的,只是方法不同),则选择“用一条查询指定要输出的数据”,点击“下一步” ->
点击“查询生成器”,选择要导入的DBF表(此时可选择列),点击“下一步” ->
指定排序顺序,选一个或多个排序字段,如果不用排序,此步可略,点击“下一步” ->
此步可以指定查询条件,如果没有条件,此步可略,点击“下一步” ->
出现了对应的SQL语句(也可以再修改生成的SQL语句,但不推荐),再点击“下一步” ->
这时可修改要生成的SQL表名,默认为“结果”,再点击“下一步” ->
再点击“下一步” ->
最后点击“完成”进行导入即可(导入成功与否DTS会有提示)。



方法三:

先把DBF表转成EXCEL或TXT,然后SQL SERVER的导入导出工具把EXCEL或TXT导入即可(此方法类似方法二,不再介绍)。
wwwwb 2005-10-10
  • 打赏
  • 举报
回复
到MS的网站去下载。
coffeedou 2005-10-10
  • 打赏
  • 举报
回复
未能找到 OLE DB 提供程序 'VFPOLEDB.1' 的注册表项。
OLE DB 错误跟踪[Non-interface error: Provider not registered.]。
wwwwb 2005-10-10
  • 打赏
  • 举报
回复
不会吧,你用SQL SERVER不知道T-SQL及OPENDATASET、OPENDATASOURCE?
示例:
在SQL SERVER的查询分析器中:
select * from openrowset('VFPOLEDB.1','d:\temp\123.dbf';'admin';'' ,'select * from tablename')
coffeedou 2005-10-10
  • 打赏
  • 举报
回复
楼上的恕我看不懂,还有别的吗?
wwwwb 2005-10-10
  • 打赏
  • 举报
回复
可以参考T-SQL的OPENDATASET、OPENDATASOURCE,将DBF转到SQL SERVER。

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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