2008-09-09 40 views

回答

15

使用链接的服务器或使用OPENROWSET,例如

SELECT * into SomeTable 
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; 
SourceDB=\\SomeServer\SomePath\; 
SourceType=DBF', 
'SELECT * FROM SomeDBF') 
+5

我用它,但出现此错误---- OLE DB提供程序“MSDASQL”链接服务器“(空)”返回了消息“[微软] [ODBC驱动程序管理器]驱动程序不支持此功能”。 无法为链接服务器“(null)”初始化OLE DB提供程序“MSDASQL”的数据源对象。 – sqlchild 2011-03-22 05:52:36

+1

@sqlchild:我必须安装它才能为我工作。 http://msdn.microsoft.com/en-us/vfoxpro/bb​​190233 – JoshBaltzell 2011-06-10 13:13:19

+0

@JoshBaltzell:当我尝试安装该ODBC驱动程序时出现以下错误:“错误1918年:安装ODBC驱动程序时出错:Microsoft Visual FoxPro Diver,ODBC错误13.由于系统错误代码1114,无法加载Microsoft Visual FoxPro Diver ODBC驱动程序的安装例程:动态链接库(DLL)初始化例程失败(C:\ Windows \ system32 \ vfpodbc.dll)。验证文件Microsoft Visual FoxPro驱动程序是否存在,并且您可以访问它。“ – Zach 2012-01-12 20:46:20

2

什么终于为我们工作是使用FoxPro OLEDB Driver,并使用以下语法。在我们的例子中,我们使用的是SQL 2008

select * from 
    openrowset('VFPOLEDB','\\VM-GIS\E\Projects\mymap.dbf';''; 
    '','SELECT * FROM mymap') 

替代\\VM-GIS...与DBF文件的位置,无论是UNC或驱动器路径。另外,FROM后面的mymap替换为不带.dbf扩展名的DBF文件的名称。

4

我能够使用的答案从jnovation但因为有什么错我的领域,我简单地选择特定字段,而不是所有的,如:

select * into CERTDATA 
from openrowset('VFPOLEDB','C:\SomePath\CERTDATA.DBF';''; 
    '','SELECT ACTUAL, CERTID, FROM CERTDATA') 

非常令人兴奋的终于有一个可行的答案感谢大家在这里!