AdoDb Connection

Post Reply
User avatar
damianodec
Posts: 373
Joined: Wed Jun 06, 2007 2:58 pm
Location: Italia
Contact:

AdoDb Connection

Post by damianodec »

Hi
I use adodb connection for DB in cloud and often (trouble internet line) the connection go down for a few milliseconds
I check ocn:State and is Ok.
Mr.Rao suggests function IsCnActive().
before each FW_OpenRecordSet I check the connection by IsCnActive but nothing if the connection goes down I always get FW_ShowAdoError dialog.

Is there any safer way to check the connection or understand if it is actually active?

Thanks
FiveWin for xHarbour 24.02 - Fe. 2024 - Embarcadero C++ 7.00 for Win32
FWH 64 for Harbour 19.06 (MSVC++) Jun. 2019 - Harbour 3.2.0dev (r1904111533)
Visual Studio 2019 - Pelles C V.8.00.60 (Win64)
User avatar
karinha
Posts: 4884
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: AdoDb Connection

Post by karinha »

Use: ISINTERNET()

Code: Select all

   IF .NOT. IsInternet()

      aGrad := { { 0.30, CLR_BLACK, CLR_BLACK },{ 0.50, CLR_BLACK, CLR_BLACK } }

      DEFINE CURSOR oHand RESOURCE "Dedo"
      DEFINE ICON oIco  NAME "ICONE05"
      DEFINE FONT oFnt  NAME "Ms Sans Serif" SIZE 0,  16 BOLD
      DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -16 BOLD

      DEFINE DIALOG oDlg  RESOURCE "DLG_SEM_INTERNET" ICON oIco GRADIENT aGrad

      oDlg:lHelpIcon := .F.

      For IDCor = 401 To 405 // Os ID's dos TEXTOS na DIALOG.
         REDEFINE SAY ID IDCor OF oDlg COLORS CLR_WHITE, CLR_WHITE UPDATE FONT oFont TRANSPARENT
      Next IDCor

      REDEFINE BITMAP oBtnImg ID 120 RESOURCE "EXPLORER32" OF oDlg TRANSPARENT

      REDEFINE BUTTONBMP oSaida ID 301 OF oDlg RESOURCE "154" TEXTRIGHT    ;
         ACTION( oDlg:End() ) CANCEL

      oSaida:cTooltip := { "Saida - Exit - Cancelar", ;
                           "Saida - Exit - Cancelar", 1, CLR_WHITE, CLR_HBLUE }

      oSaida:oCursor := oHand

      SET FONT OF oSaida TO oFont

      ACTIVATE DIALOG oDlg CENTERED

      oFnt:End()
      oFont:End()

   ELSE

      SendEmailLog( cErrorLog )  // ENVIA O LOG DE ERRO DA NFE TODOS OS .LOG

   ENDIF



FUNCTION IsInternet()

   LOCAL cIp, cVret := .F.

   WsaStartUp()

   cIp := GETHOSTBYNAME( "microsoft.com" )
   cIp := GETHOSTBYNAME( "microsoft.com" )

   WsaCleanUp()

   // Seguranca caso o provedor da microsoft esteja fora do ar...
   IF ( cIp <= "0.0.0.0" )

      WsaStartUp()

      cIp := GetHostByName( "google.com" )
      cIp := GetHostByName( "google.com" )

      WsaCleanUp()

   ENDIF

RETURN( cIp<>"0.0.0.0" )

/* // DIALOG - use google translator.
DLG_SEM_INTERNET DIALOG 201, 97, 210, 90
STYLE DS_ABSALIGN | DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE
FONT 10, "MS Sans Serif"

{
 PUSHBUTTON "&Saida", 301, 80, 71, 50, 14
 CTEXT "PLENOWIN: Modem Desconectado.", 401, 5, 4, 200, 12, SS_CENTER | NOT WS_GROUP
 LTEXT "___________________________________________________________________", 402, -1, 16, 211, 10, NOT WS_GROUP
 CTEXT "Verifique Sua Conexão de Internet", 403, 5, 33, 200, 12, SS_CENTER | NOT WS_GROUP
 CTEXT "e Tente Novamente.", 404, 5, 45, 200, 12, SS_CENTER | NOT WS_GROUP
 CTEXT "( Error Code: 277 )", 405, 5, 57, 200, 12, SS_CENTER | NOT WS_GROUP
 CONTROL "TBitMap", 120, "TBitMap", WS_CHILD | WS_VISIBLE, 5, 70, 25, 20
}
*/
Regards, saludos.
João Santos - São Paulo - Brasil
Post Reply