soy nuevo en Visual FoxPro, y estaba empezado a hacer algunos ejemplo. primero, establezco la conexión en la parte que es codigo (.prg) donde es el inicio de la ejecución:
lcServer="localhost"
lcDatabase="bd_foxpro"
lcUser = "root"
lcPassword = "root"
lcStringConn="Driver={MySQL ODBC 3.51 Driver};Port=3306"+;
";Server="+lcServer+;
";Database="+lcDatabase+;
";Uid="+lcUser+;
";Pwd="+lcPassWord
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringConn)
xpath =SYS(5)+SYS(2003)
DO FORM xpath +"\proyecto_base\formularios\listado_usuarios"
En el load formulario:
create cursor list_usuarios;
(iduser n(11),;
nombre c(15),;
clave c(15),;
edad n(15))
TEXT TO my textmerge NOSHOW
SELECT iduser,nombre,clave,edad
FROM usuarios
ENDTEXT
cmd = SQLEXEC(lnHandle,my,"xlist_usuarios")
IF cmd <0
MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
endif
select list_usuarios
zap
SELECT xlist_usuarios
GO top
do while !eof()
select list_usuarios
append blank
replace list_usuarios.iduser with xlist_usuarios.iduser
replace list_usuarios.nombre with xlist_usuarios.nombre
replace list_usuarios.clave with xlist_usuarios.clave
replace list_usuarios.edad with xlist_usuarios.edad
select xlist_usuarios
skip
enddo
SQLDISCONNECT(lnHandle)
Si se fijan, utilizo el SQLDISCONNECT(lnHandle) para desconectarme, ya que no es bueno que quede con la conexión abierta.
Pero si quiero volver abrir la conexión, ¿como sería la mejor forma para no redundar en código?. ¿Cual es la mejor forma de llamar o abrir los formularios sin dejar en ejecución en el administrador de tareas?Me explico, si cierro un formulario, no debería estar en ejecución o en proceso.
Actualmente llamo o voy al formulario así:
xpath =SYS(5)+SYS(2003)
DO FORM xpath +"\proyecto_base\formularios\listado_usuarios"
Pero no se si es lo mejor.
Espero sus respuestos, y gracias por su atención. Saludos
Danilo, te cuento que en todos mis sistemas establezco la conexión al inicio y no lo desconecto nunca …. En ambientes de redes LAN es muy poco probable que pierdas la conexión, pero adicionalmente para evitar que esto suceda, tengo un proceso que se ejecuta cada 1 minuto y realiza una consulta simple, de esta manera la conexión se mantiene “activa”
Este esquema incluso lo utilizo en sucursales con VPN a través de Hamachi sin problemas.
Saludos,
Fernando.