He visto en el manual del mysql y php que haciendo
$oCnx->ping()
se puede verificar si la conexion esta activa/funciona.
Con tdolphin como lo hago?
gracias.
$oCnx->ping()
HB_FUNC( MYSQLPING ) //Zero if the connection to the server is alive. Nonzero if an error occurred
{
int iPing = 1;
MYSQL * hMySQL = (MYSQL *) hb_MYSQL_par( 1 );
if( hMySQL )
{
iPing = mysql_ping( hMySQL );
}
else
{
hb_errRT_BASE( EG_ARG, 2020, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}
hb_retni( iPing );
}
HB_FUNC( MYSQLQUERY )
{
MYSQL * hMySQL = (MYSQL *) hb_MYSQL_par( 1 );
if( hMySQL )
{
if( mysql_ping( hMySQL ) == 0 )
{
hb_retnl( ( long ) mysql_real_query( hMySQL,
( const char * ) hb_parc( 2 ),
( unsigned long ) hb_parnl( 3 ) ) ) ;
}
else
{
hb_errRT_BASE( EG_ARG, 2020, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}
}
else
{
hb_errRT_BASE( EG_ARG, 2020, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}
} METHOD Ping() INLINE IIf( MySqlPing( ::hMySQL ) > 0, ( ::CheckError(), FALSE ), TRUE )if ::oCnx:ping()
,,,,,HB_FUNC( MYSQLCONNECT ) // -> MYSQL*
{
MYSQL * mysql;
unsigned int port = ISNUM( 4 ) ? ( unsigned int ) hb_parni( 4 ) : MYSQL_PORT;
unsigned int flags = ISNUM( 5 ) ? ( unsigned int ) hb_parni( 5 ) : 0;
PHB_ITEM pcbDecrypt = hb_param( 7, HB_IT_BLOCK );
unsigned int * iTimeOut= 10;
BOOL bReconnect = TRUE;
mysql = mysql_init( NULL );
if ( ( mysql != NULL ) )
{
mysql_options( mysql, MYSQL_OPT_RECONNECT , &bReconnect );
mysql_options( mysql, MYSQL_OPT_CONNECT_TIMEOUT, &iTimeOut );
mysql_real_connect( mysql,
hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 1, HB_IT_ANY ) ) ),
hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 2, HB_IT_ANY ) ) ),
hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 3, HB_IT_ANY ) ) ),
hb_itemGetC( hb_vmEvalBlockV( pcbDecrypt, 1, hb_param( 6, HB_IT_ANY ) ) ),
port, NULL, flags );
hb_MYSQL_ret( mysql );
}
else
{
hb_retptr( NULL );
}
}el problema qe tengo con la ultima version de la tdolphin es que cuando se conecta
muestra la ip a donde se conecta, ya busque en los fuentes y la verdad que me perdi,
no se donde ponen ni un ? ni un msginfo pero aparece en la pantalla el IP,
por eso deje de usar los fuentes y volvi a una version vieja, que en esa version tengo
problemas cuando paso un campo (por ejemplo) string y el campo destino es un INT,
no hace la conversion. pero bueno. sos "parches" en mi misma app.
gracias.
Carlos,
Referente:
libmysql.dll (la he sacado de mariadb)
pode me enviar uma cópia da LIBMYSQL.DLL(mariadb)?
obrigado
Carlos,
como lo hace en PRG para probar la conexión a perder y realizar la reconexión?
Gracias
eso lo hace solo, cuando tdolphin intenta ejecutar un query, y si la conexion esta caida, esta intenta reconectarse.
ahi nosotros no hacemos nada.
eso siempre y cuando reempalzemos la funcion c que expuse anteriormente en los funetes de tdolphin y recompilemos la libreria.
salu2
carlos vargas
Carlos, gracias!
Estimados, solo preguntarles si implementaron el cambio, y si es asi, como les fue.
vamos, un poco de feedback.
salu2
carlos vargas
![]()
Carlos,
com a versão nova da TDOLPHIN, estou enfrentando problemas com CAMPOS NULL.
Como você conseguiu resolver?
gracias,