Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Select desde sql server a tabla DBF

Estas en el tema de Select desde sql server a tabla DBF en el foro de SQL Server en Foros del Web. Saludos, Tengo un problema con esta consulta en sql, tengo unos datos en una tabla dbf de fox pro y quiero hacer un select desde ...
  #1 (permalink)  
Antiguo 04/01/2008, 09:47
 
Fecha de Ingreso: octubre-2003
Ubicación: Huancayo - Peru
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
[Resuelto] Select desde sql server a tabla DBF

Saludos,
Tengo un problema con esta consulta en sql, tengo unos datos en una tabla dbf de fox pro y quiero hacer un select desde sql server, ya tengo el driver vfp y too lo necesario, funciona normal cuando pongo los datos de esta forma:




Código:
SELECT *
FROM OPENROWSET('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver; SourceDB=d:\develop; SourceType=DBF',
'SELECT * FROM Saldo_Cuenta_Banco')

pero cuando quiero asignar variables a la direccion donde esta y la tabla a consultar de esta forma, me sale error.


Código:
declare @direct as varchar(180)
declare @tabla as varchar(180)

set @direct = 'D:\develop'
set @tabla = 'Saldo_Cuenta_Banco'

declare @direcc as varchar(300)
declare @consult as varchar(300)

set @direcc ='Driver=Microsoft Visual FoxPro Driver; SourceDB=' + @direct + '; SourceType=DBF'
set @consult = 'SELECT * FROM' + @tabla

SELECT *
FROM OPENROWSET('MSDASQL',@direcc,@consult)

por que cuando pongo todo en una linea sin variables la consulta funciona y cuando utilizo variables, la consulta me bota error en la ultima linea???
Gracias por su ayuda
__________________
La fidelidad es a la vida de las emociones lo que la coherencia a la vida del intelecto. ("El Retrato de Dorian Gray" - Oscar Wilde)

Última edición por Gerardo_mfg; 24/01/2008 a las 14:39 Razón: Problema Resuelto
  #2 (permalink)  
Antiguo 04/01/2008, 10:01
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Select desde sql server a tabla DBF

Eso es porque openrowset no acepta variables en sus parametros (para mayor referencia consultar la ayuda de SQL).


Lo que puedes hacer, si es que necesitas que varien dichos parametros es utilizar sql dinamico para ejecutar la sentencia de select.

quedaria algo como:

Código:
execute ('SELECT * FROM OPENROWSET(''MSDASQL'',''' + @direcc + ''',''' + @consult + ''')'
Aunque se recomienda utilizar el sp sp_executesql para ejecutar codigo dinamico.

En el foro hay varios post al respecto.


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 04/01/2008 a las 10:26
  #3 (permalink)  
Antiguo 24/01/2008, 14:40
 
Fecha de Ingreso: octubre-2003
Ubicación: Huancayo - Peru
Mensajes: 32
Antigüedad: 20 años, 6 meses
Puntos: 0
De acuerdo Re: Select desde sql server a tabla DBF

Gracias Andres95, el problema se solucionó gracias a tu ayuda.
__________________
La fidelidad es a la vida de las emociones lo que la coherencia a la vida del intelecto. ("El Retrato de Dorian Gray" - Oscar Wilde)
  #4 (permalink)  
Antiguo 24/01/2008, 15:22
 
Fecha de Ingreso: abril-2006
Mensajes: 9
Antigüedad: 18 años
Puntos: 0
Re: Select desde sql server a tabla DBF

Doc... tengo un problema similar... te cuento... tengo un programa en visual basic 2005... este programa carga 2 archivos .DBF (hecho en Visual FoxPro 9.0) pero lo malo es que cuando presiono el boton "cargar" me sale el mensaje: "No se pudo encontrar el archivo ISAM instalable" ... y no los puede cargar.... lo que tengo que hacer es entrar al vfp 9.0 y exportarlos como tipo dBASE IV..... hay recien los carga.... necesito urgente la cadena de conexion... nose si me puedes ayudar....
mi cadena de conexion es la siguiente...
<add key="cadenaDBF" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NOMBRE_CARPETA_DBF;Extended Properties=dBASE IV;User ID=;Password=;"/>

Gracias,

Vito Alessandro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:38.