¿Cual es la mejor practica o forma de establecer conexión y cierres de pestañas en FOXPRO?

91 views
Skip to first unread message

Danilo Jonathan Alarcon Villagran

unread,
Nov 1, 2018, 12:43:58 PM11/1/18
to Comunidad de Visual Foxpro en Español

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

Afpsistemas - Fernando Maggi

unread,
Nov 1, 2018, 1:58:25 PM11/1/18
to publice...@googlegroups.com

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.

Antonio Meza

unread,
Nov 1, 2018, 6:04:31 PM11/1/18
to Comunidad de Visual Foxpro en Español
La mejor practica es conectarte al servidor, realizar lo que tengas que hacer y desconectarte, esa es la mejor practica!!!

Por otro lado te recomiendo foxydb, con simples funciones tienes todo el control de Mysql / MariaDb y FireBird, por ahí hay una versión que incluye SqlServer de un compañero que lo adapto.


saludos
Antonio Meza
Reply all
Reply to author
Forward
0 new messages