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 respuesta
Respuesta de piraton
1
1
piraton, Desarrollo de Aplicaciones Visual Fox, ADO/ODBC Programador ASP...
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