Autore Topic: [Risolto] Verificare database remoto  (Letto 2886 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Verificare database remoto
« Risposta #15 il: 26 Marzo 2012, 01:00:07 »
Io intendo farti un piccolo programmino in gambas che ha come scopo il solo tentativo di connessione al database...

Se si connette si chiude subito.

Il tuo programma principale, con le funzioni che ti ho postato sopra, intercetta la chiusura del programmino di verifica e fa la connessione...

Se il programmino di verifica non si connette e, come nell'esempio, passano tre secondi, il programma principale chiude il programmino di verifica e non tenta la connessione...

Questa procedura ti evita di avere il programma principale bloccato mentre tenta una connessione che non risponde...

Il timeout del timer ovviamente te lo imposti secondo le tue esigenze...



Buona idea di lanciare un programmino test, posso avviarlo con EXEC dal programma principale e inserire un timer che se chiuso lo riavvii ogni tot minuti.

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Verificare database remoto
« Risposta #16 il: 26 Marzo 2012, 01:03:57 »

Non posso inserirli fissi nel programmino in quanto variano, deve girare su 10 pc diversi e sono gia 10 name e 10 login, in più per host sono 3 ip diversi.
Se esiste un modo di passarli al volo è meglio altrimenti mi devo appoggiare a un file e farlo leggere da entrambi.

Edit: 10 login e 10 Password

bha se e' per motivi di sicurezza puoi crearti un utente che non puo' fare nulla... ti servirà solo per la connessione...

Altrimenti, dato che il programmino di verifica lo lanci con EXEC gli puoi passare direttamente degli argomenti...

Tipo:

EXEC [tuopathprog, "-user", "pippo", "-passwd", "Cippalippa"]

poi nel programmino di verifica fai l'analisi degli argomenti passati con Application.Args

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Verificare database remoto
« Risposta #17 il: 26 Marzo 2012, 01:18:19 »

Non posso inserirli fissi nel programmino in quanto variano, deve girare su 10 pc diversi e sono gia 10 name e 10 login, in più per host sono 3 ip diversi.
Se esiste un modo di passarli al volo è meglio altrimenti mi devo appoggiare a un file e farlo leggere da entrambi.

Edit: 10 login e 10 Password

bha se e' per motivi di sicurezza puoi crearti un utente che non puo' fare nulla... ti servirà solo per la connessione...

Altrimenti, dato che il programmino di verifica lo lanci con EXEC gli puoi passare direttamente degli argomenti...

Tipo:

EXEC [tuopathprog, "-user", "pippo", "-passwd", "Cippalippa"]

poi nel programmino di verifica fai l'analisi degli argomenti passati con Application.Args

Scusa milio, che scemo che sono, il programmino non deve scaricare dati quindi posso mettere un qualsiasi utente autorizzato su mysql. l'unico dato che devo passare se cambia è l'ip e lo inserisco in EXEC

Grazie per la dritta ora mi metto all'opera.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #18 il: 26 Marzo 2012, 02:08:39 »
Grazie milio, ho risolto.
Il codice funziona alla grande, ora devo solo provarlo domani quando il server è acceso e calcolare il tempo occorrente per la connessione in modo da impostarre il timer.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #19 il: 26 Marzo 2012, 13:05:12 »
riapro il post

@milio
c'è un errore nel codice ma non riesco a capire dove, mi da sempre database chiuso anche quando il server è acceso.
Con il server acceso ho provato il tempo di connessione dal mio programma ed è di 1.5 sec.
Con il codice che mi hai postato anche arrivando fino a 40 sec mi dice sempre chiuso.

Codice: [Seleziona]
PUBLIC SUB VerificaDb()  

   
 Verifica = EXEC [path] FOR READ AS "Process" 
 Tim.Start() 
 
END 
 
PUBLIC SUB Process_Kill() 
 
 Tim.Stop() 
 IF NOT NonConnesso THEN   
   Message.Info("Aperto")
   ScaricaQuote 'avvia la connessione dal mio programma
 ELSE 
   Message.Info("Chiuso") 
   
 ENDIF 
 
END 
 
 
PUBLIC SUB VTimer_Timer() 
 
 Tim.Stop() 
 NonConnesso = TRUE 
 Verifica.Kill() 
 
END 

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #20 il: 26 Marzo 2012, 13:13:43 »
Hai fatto in modo che se il programma di verifica ottenendo la connessione si chiuda?

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #21 il: 26 Marzo 2012, 13:35:11 »
Hai fatto in modo che se il programma di verifica ottenendo la connessione si chiuda?
no
il programmino apre solo la connessione

Codice: [Seleziona]
PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

DIM RMyConn AS NEW Connection
DIM sqlr AS String
DIM MyRSR AS Result


 
WITH RMyConn
     
      .Close
      .Type = "mysql" ' indicazione del tipo di database da utilizzare
      .Host = "95.241.68.179" 'M1.Rhost
      .Name = "Mazzini" 'M1.Rname
      .Login = "luca" 'M1.Rlogin
      .port = "3306" 'M1.Rport
      .Password = "ptk569"
      .Open
    END WITH

 
RMyConn.close

END

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #22 il: 26 Marzo 2012, 13:54:12 »
Re Risolto

Non avevo pensato di chiudere il programmino.

grazie ancora milio

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #23 il: 26 Marzo 2012, 14:07:54 »
Apposto allora...  :ciao:

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: [Risolto] Verificare database remoto
« Risposta #24 il: 26 Marzo 2012, 14:18:29 »
si
per la cronaca se qualcuno volesse usarlo, ho dovuto fare 2 modifiche.

togliere PUBLIC SUB _new()

e poi avevo messo al programmino Visibile = false.
ho dovuto sotituirlo da codice con Me.hide

entrambi mi creavano problemi, forse il form veniva chiuso ma non liberava il pid

 :ciao: :ciao: milio