y llamala cada ves que deseas trabajar con las tablas , yo lo uso asi y me aseguro la coneccion
*-------------------------------
PROCEDURE chequea
*bdConn = SQLSTRINGCONNECT(lcCnxStr) && ESTABLECER LA CONEXION
m.ResCon = SQLEXEC(bdConn,"select now()","csrNow")
IF m.Rescon = -1
* intento una reconeccion
conecta()
ELSE
* WAIT WINDOW " hay coneccion .... " nowait
ENDIF
return
*-----------------------------
PROCEDURE conecta
lcServidor = "localhost"
* ip hamachi sino poner localhost
lcBaseDatos = "veter"
lcUsuarioSQL = "root"
lcPass = "********"
*lcCnxStr = "Driver={MySQL ODBC 3.51 Driver};Port=3306;Server=" + lcServidor + ";Database=" + ALLTRIM(lcBaseDatos) + ";Uid=" + lcUsuarioSQL + ";Pwd=" + lcPass + ";OPTION=131329;"
lcCnxStr = "Driver={MySQL ODBC 3.51 Driver};Port=3306;Server=" + lcServidor + ";Database=" + ALLTRIM(lcBaseDatos) + ";Uid=" + lcUsuarioSQL + ";Pwd=" + lcPass + ";OPTION=131329;"
SQLSETPROP(0,"DispLogin",3)
bdConn = SQLSTRINGCONNECT(lcCnxStr) && ESTABLECER LA CONEXION
IF bdConn < 1
=AERROR(laError)
lnError = TRANSFORM(laError(1))
lcError = laError(2)
MESSAGEBOX("Imposible Realizar la Conexión con el Servidor de Datos." + CHR(13) + CHR(13) + ;
"Número de Error: " + lnError + CHR(13) + ;
ALLTRIM(lcError),048,"Error == Conexión Base de Datos")
RETURN .F.
ENDIF
=SQLSETPROP(bdConn, 'PacketSize', 5000)
*THISFORM.label6.Caption = "Conectado con: " + lcServidor + " Usuario: " + lcServidor + "@" + lcUsuarioSQL
*MESSAGEBOX("Se Realizo la Conexion con Exito.",48+0+0,"Conexión Base de Datos")
WAIT WINDOW " Conexion Realizada Ok !!! " NOWAIT
RETURN
de esta forma no deberias tener problemas de conección ...
saludos