Conectar VFP9 a DB MYSQL

1,557 views
Skip to first unread message

manuel medina

unread,
Feb 1, 2021, 1:56:40 AM2/1/21
to Comunidad de Visual Foxpro en Español
Saludos a todos/as
Estoy tratando de conectarme a una base de datos de MYSQL desde VISUAL FOXPRO 9.
Ya instale bien a MYSQL, MYSQL Wordkbench, MYSQL conector odbc.
Tengo acceso a la base de datos desde MYSQL Workbench pero cuando haga la coneccion  desde Visual Foxpro me abre una ventana pidiendome seleccionar origen de datos y nombre del DNS.

Cuando ejecuto esto desde Fox me sale la ventana descrita anteriormente:
PUBLIC cn 
cn=SQLSTRINGCONNECT("{MYSQL ODBC 8.0 ANSI Driver};server=localhost;port=3306;Database=dbnegocios;Uid=root;Pwd=medina26;")

Aunque creo el origen de datos en esta ventana no se que hago mal ya que cuando regreso a Visual Foxpro sigue igual.
Tengo varios dias que no escribo un solo codigo porque estoy frenado aqui, ayudenme para poder continuar.

Mil gracias.


HernanCano

unread,
Feb 1, 2021, 2:14:09 AM2/1/21
to Comunidad de Visual Foxpro en Español
Mira SQLSETPROP() con el parámetro DispLogin.

Antonio Lima

unread,
Feb 1, 2021, 2:32:24 AM2/1/21
to publice...@googlegroups.com
Hola medina , buenos dias.

Te he enviado un correo.

Nosotros ya hemos pasado por eso,  y por otros dolores de cabeza.  avisame si necesitas algo mas.

Un saludo,


El lun, 1 feb 2021 a las 8:14, HernanCano (<jherna...@gmail.com>) escribió:
Mira SQLSETPROP() con el parámetro DispLogin.

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/981e2ee3-2094-4b61-b2b0-311b89c06647n%40googlegroups.com.

Edison Ramirez

unread,
Feb 1, 2021, 2:49:48 AM2/1/21
to publice...@googlegroups.com
Es el conector


From: publice...@googlegroups.com <publice...@googlegroups.com> on behalf of manuel medina <medina...@gmail.com>
Sent: Monday, February 1, 2021 1:56:40 AM
To: Comunidad de Visual Foxpro en Español <publice...@googlegroups.com>
Subject: [vfp] Conectar VFP9 a DB MYSQL
 
--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

HernanCano

unread,
Feb 1, 2021, 12:23:44 PM2/1/21
to Comunidad de Visual Foxpro en Español
Medina:
1. La cadena de conexión es incorrecta: falta el identificador "Driver=".
2. Las contraseñas no se comparten.
3. En https://www.connectionstrings.com/mysql/ no veo que {MYSQL ODBC 8.0 ANSI Driver} sea un dato válido para "Driver", pero esa info ya debes tenerla (es decir, si la estás usando es por que sí es; yo no tengo la suficiente experiencia el MySQL/MariaDB como vos).
4. Te recomiendo que hagas una verificación de errores, más o menos así (inmediatamente luego de la SqlStringConnect, escribe lo sgte):

if M.CN<1 then
   wait window "ERROR, No se logró la conexión con la bdatos" nowait noclear
   local arrError(1)
   aerror(arrError)
   MessageBox(aerror(2))
else
   wait window "Conexión realizada" timeout 5&&nowait noclear
endif

De esta forma obtienes más info para saber qué pasa.

manuel medina

unread,
Feb 1, 2021, 12:49:51 PM2/1/21
to publice...@googlegroups.com
Exactamente, me dice que la variable driver no fue encontrada. 



--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/SrB48C8xxBg/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/47b83cd8-7a80-490e-b7e5-89b253fcad92n%40googlegroups.com.

Antonio Lima

unread,
Feb 1, 2021, 12:59:46 PM2/1/21
to publice...@googlegroups.com
Hola Manu, recibiste mi correo?

Depende de la versión del odbc que instales en tu equipo, así se llamará el driver.

Si quieres verlo de cerca escríbeme al correo que te envié y te comparto pantalla con Anydesk y te explico.

Saludos

Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CADMoUR4-aX0f4PJ4K8zz3YrWuTF-wa6jvsMsB%3Dx_BwhcL%2BPV0g%40mail.gmail.com.

manuel medina

unread,
Feb 1, 2021, 1:06:56 PM2/1/21
to publice...@googlegroups.com

Juanerge Hung

unread,
Feb 1, 2021, 4:15:06 PM2/1/21
to publice...@googlegroups.com
Porque no usas la versión de la comunidad version 5.7 es la más estable de todas e s la yo uso y el workbench 6.3, si decides usar la 5.7 te ayudo con mucho gusto

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

francisco prieto

unread,
Feb 1, 2021, 7:04:00 PM2/1/21
to publicesvfoxpro
Esto es lo uso

lnHandleAct = Sqlstringconnect("DRIVER=" + Alltrim(OP_SQL.P_DRIVER) + ";" + ;
" SERVER="     + Alltrim(OP_SQL.P_SERVIDOR) + ";" + ;
" UID="        + Alltrim(OP_SQL.P_USUARIO) + ";" + ;
" PWD="        + Alltrim(OP_SQL.P_CONTRASENA) + ";" + ;
" DATABASE="   + IIF(EMPTY(VL_BASEDATOS),Alltrim(OP_SQL.P_BASEDATOS),ALLTRIM(VL_BASEDATOS)) + ";" + ;
" OPTIONS="    + Alltrim(OP_SQL.P_OPCIONES) + ";")

Funciona tanto con MySql como con MariaDB
Saludos,

Pancho
Cordoba
Argentina

HernanCano

unread,
Feb 2, 2021, 9:06:04 PM2/2/21
to Comunidad de Visual Foxpro en Español
medina:
Estás haciendo lo que no es.
Yo no dije nunca que miraras qué valor tiene la variable Driver.
Yo dije que faltaba el identificador "Driver=".

¿Sabes programar?

Mira la respuesta de Pancho.

Dennys Coronel

unread,
Feb 4, 2021, 12:51:33 AM2/4/21
to publice...@googlegroups.com
Estimado, verifique si instalo el ODBC o conector para MYSQL de 32 bits.

Saludos.

manuel medina

unread,
Feb 18, 2021, 8:43:14 PM2/18/21
to Comunidad de Visual Foxpro en Español
Buenas noches

Les comparto la solución de la coneccion de VFP9 a DB MYSQL, me estaba complicando la vida y era mas sencillo de lo que pensé, gracias a todos y la comparto:

public coneccion
coneccion = sqlconnect("origen_datos", "root", "1234")
if coneccion < 1
messagebox("No se pudo establecer la conexión " + "origen_datos", 64, wtitle())
return .f.
else
messagebox("Coneccion exitosa")
endif

SQLEXEC(coneccion,"select * from articulos","cur_art")
browse 

Señores, mi unico problema era que no sabia que el nombre que se le pone al origen de datos es que se pone en la coneccion en este caso "origen_datos", esto era el gran problema y por esta razón me conectaba de todas las formas menos desde Visual Foxpro.

Gracias, saludos y fin.

Antonio Lima

unread,
Feb 18, 2021, 10:07:54 PM2/18/21
to publice...@googlegroups.com
Hola Manuel Medina,

Con el comando STRINGCONNECT puedes conectarse directamente a una bbdd sin tener que crear un origen de datos antes.
El Driver ODBC si que tiene que estar instalado en todos los equipos que usen el sistema.

Te pongo un ejemplo para MYSQL 8  a lo mejor te sirve

lcHost = "192.168.1.1"
lcPort = "3306"
lcUID = "Usuario"
lcPWD = "Contraseña"
lcData = "NombreBaseDatos"
lcOption = "134217728"


TEXT TO lcCadenaConexion TEXTMERGE NOSHOW PRETEXT 3
      DRIVER={MySQL ODBC 8.0 ANSI Driver};
      SERVER=<<lcHost>>;
      PORT=<<lcPort>>;
      UID=<<lcUID>>;
      PWD=<<lcPWD>>;
     DATABASE=<<lcData>>;
     OPTIONS=<<lcOption>>;
ENDTEXT

=SQLSETPROP(0,"DispLogin" , 3 )
lnconexion = SQLSTRINGCONNECT(lcCadenaConexion)

Aarón Delgado

unread,
Feb 19, 2021, 8:39:39 AM2/19/21
to publice...@googlegroups.com
A mi parecer conviene conectar la bd por medio de una cadena de conexión como indica Antonio.
Manuel se sugiere no usar root como usuario, es mejor crear un usuario y agregarle rol de escritura y lectura.

Saludos cordiales;

DELGADO JAIMES, Roberto Aarón
Fijo: 013969545 /  Movistar: 988316319



Reply all
Reply to author
Forward
0 new messages