2008-09-09 177 views

Respuesta

15

Usar un servidor vinculado o utilizar OPENROWSET, ejemplo

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

lo usé, pero ocurre este error ---- Proveedor OLE DB "MSDASQL" para el servidor vinculado "(nulo)" mensaje devuelto "El controlador [Microsoft] [ODBC Driver Manager] no admite esta función". No se puede inicializar el objeto de origen de datos del proveedor OLE DB "MSDASQL" para el servidor vinculado "(nulo)". – sqlchild

+1

@sqlchild: tuve que instalar esto para que las cosas funcionen para mí. http://msdn.microsoft.com/en-us/vfoxpro/bb190233 – JoshBaltzell

+0

@JoshBaltzell: Recibo el siguiente error cuando trato de instalar ese controlador ODBC: "Error 1918: Error al instalar el controlador ODBC: Microsoft Visual FoxPro Diver, ODBC error 13. Las rutinas de instalación para el controlador ODBC de Microsoft Visual FoxPro Diver no se pudieron cargar debido al código de error del sistema 1114: una rutina de inicialización de la biblioteca de vínculos dinámicos (DLL) falló. (C: \ Windows \ system32 \ vfpodbc.dll) .. Verifique que el archivo Microsoft Visual FoxPro Driver existe y que puede acceder a él. " – Zach

2

Lo que finalmente trabajó para nosotros era utilizar la FoxPro OLEDB Driver y utilizar la siguiente sintaxis. En nuestro caso estamos utilizando SQL 2008.

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

Sustituto de la \\VM-GIS... con la ubicación de su archivo DBF, ya sea UNC o ruta de unidad. Además, sustituya mymap después del FROM con el nombre del archivo DBF sin la extensión .dbf.

+1

Sí, definitivamente quiere usar OLEDB sobre ODBC en esto. –

4

pude usar la respuesta de jnovation pero desde que había algo mal con mis campos, simplemente seleccionado campos específicos en lugar de todos, como:

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

Muy emocionante para finalmente tener una respuesta viable gracias a todos aquí!

+0

Esto funcionó para mí. Sin embargo, obtendría un error de "Acceso denegado" hasta que fui a Objetos del servidor -> Servidores vinculados -> Proveedores -> VFPOLEDB, hice clic en Propiedades y marqué "Permitir en proceso" –

Cuestiones relacionadas