Configurar y acceso desde VFP a ODBC

Un favor, necesito accesar a las bases de datos de ASPEL, que están en Paradox.. Pero quiero hacerlo sin necesidad de importar las tablas a VFP. Quiero configurar un ODBC desde VFP y accesar a las tablas por medio de cursores. Si tienes ejemplos, mejor.
1

1 respuesta

Respuesta
1
Tienes dos opciones
1)
Conexión a bases de datos (para access) con un string DNS por ODBC.
* String donde me conecto por ADO a la Base de Access
gnConnHandle = SQLSTRINGCONNECT('DSN=MS Access Database;DBQ='+;
lcMDBDir+'\'+lcMDBName+';DefaultDir='+;
lcMDBDir+';DriverId=25;FIL=MS Access;MaxBufferSize=2048;'+;
'PageTimeout=5;UID=admin;')
* Conpruebo si me conecte
IF gnConnHandle < 0
= MESSAGEBOX('No se puede conectar', 16, 'Error de conexión SQL')
ELSE
*= MESSAGEBOX('Conexión realizada', 48, 'Mensaje de conexión SQL')
= SQLSETPROP(gnConnHandle, 'asynchronous', .F.)
xconn = SQLEXEC(gnConnHandle, 'SELECT * FROM solisinauto, estados where solisinauto.nro_soli=estados.nro_soli;
and solisinauto.cod_area=estados.cod_area and estados.estado='+'?xestado', 'MiCursor')
* Compruebo si se ejecuta SQL
if xconn <0
= MESSAGEBOX('Error en Conexión', 48, 'Mensaje de conexión SQL')
else
sele micursor
go top
* inserto cursor Web en Solisinauto.dbf
do while !eof()
INSERT INTO solisinauto (nro_soli, cod_area, nro_item, descrip, cantidad, cod_concep, precio_uni, precio_tot) VALUES (micursor.nro_soli, micursor.cod_area, micursor.nro_item, micursor.descrip, micursor.cantidad, micursor.cod_concepto, micursor.precio_uni, micursor.precio_tot)
se le micursor
skip
enddo
*= MESSAGEBOX('Bases Fox Actualizadas', 48, 'Mensaje de conexión SQL')
Endif
* Inserto el Estados.dbf nuevas Solicitudes
xconn = SQLEXEC(gnConnHandle, 'SELECT * FROM estados where estados.estado='+'?xestado', 'MiCursor')
sele micursor
go top
do while !eof()
INSERT INTO Estado (nro_soli, cod_area, estado, id_usr, observa_w, fecha_alta) VALUES (micursor.nro_soli, micursor.cod_area, 'S', micursor.id_usr, micursor.observaciones_w, micursor.fecha_alta)
Se le micursor
Skip
Enddo
************** Parte principal del código
2)
Dentro del proyecto en datos tienes la opción conexiones, donde configuras el acceso por ODBC a tus bases, lo único que tienes que tener previamente cargado el driver de tu tipo de bases (también Msdac 2.7 o posterior) y luego accedes como si fueran bases de Fox.
Mariano Castañeda
Digital Bridge Argentina®
www.digitalbridge.com.ar
Un favor, he modificado la rutina que me enviaste, usando datos para paradox, pero no habré la conexión.
¿Puedes enviarme la rutina para paradox?
Gracias.
Driver para ODBC de Visual Fox con Paradox
Driver={Microsoft Paradox Driver (*.db)};DBQ=ruta física de acceso al archivo .db;DriverID=26
No lo probé pero un amigo me lo paso por mail.
Mariano Castañeda
Digital Bridge Argentina®
www.digitalbridge.com.ar
1) Fíjate si tienes instalados los drivers ODBC
Microsoft Paradox Driver (*. Db )
o
Microsoft Paradox-Treiber (*. Db )
2) En ejemplo anterior
lcMDBDir = 'C:\sistema\web'
lcMDBName = 'web.mdb'
2) Proba con esta
Lcstringconnect
='CollatingSequence=ASCII;DBQ=C:\MIDIRECTORIO;DefaultDir=C:\MIDIRECTORIO;Driver={Microsoft Paradox Driver (*.db)};DriverId=538;FIL=Paradox5.X;MaxBufferSize=2048;MaxScanRows=8;PageTimeout;ReadOnly=False;pwd=MICLAVE'
STORE SQLSTRINGCONNECT(lcstringconnect) TO gnconnhandle
Tambien puede ser
Driver do Microsoft Paradox (*. Db )
Probalo y fijate de probar cambiando los parametros, por ejemplo sacando pwd=MICLAVE si es que lo tenes sin clave, etc.
Mariano Castañeda
Digital Bridge Argentina®
www.digitalbridge.com.ar
Mariano,
ya modifique la rutina, pero ahora me da el error siguiente:
"no se pudo abrir paradox.net"
¿Sabes a que se debe?
Saludos.
¿Y cómo te fue?
Mariano Castañeda
Digital Bridge Argentina®
www.digitalbridge.com.ar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas