Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [delphi]Server non disponibile

    Ciao!
    Mi chiedevo come si possa rilevare, in un'applicazione condivisa in intranet, la disponibilità o meno del server in una rete locale. Attualmente se il server della rete è inattivo l'applicazione, posta su uno dei client, si mette in funzione, ma quando necessita di file condivisi o del database che è posto sul server, dà un messaggio di errore. Preferirei che non si mettesse proprio in funzione avvisando che il server non è disponibile. Esiste una funzione specifica che rileva la presenza o meno del server in rete?

  2. #2
    banalmente puoi fare un tentativo di connessione al database.
    Se va a buon fine ok, altrimenti dai un messaggio d'errore o quello che vuoi.


    codice:
    try
    Database.Open;
    except 
      ShowMessage('Connessione al server non riuscita');
    end;
    Ciao

  3. #3
    Dato che il database non viene aperto all'apertura dell'applicazione ma solo andando in un form specifico ho pensato di agire sulla prima immagine che devo caricare quando lancio il mio eseguibile.
    codice:
     
     try
          ImgCopertina.Picture.LoadFromFile(ImgBkgPath + 'ImgCopertina.jpg');
          except
        ShowMessage('Connessione al server non riuscita');
      end;
    ...poi come faccio a far si che alla pressione su ok nella MessageBox si torni al punto d'origine? (cioè nella cartella dove era stato posto l'eseguibile)

  4. #4
    Può andar bene:
    codice:
    Application.Terminate
    In effetti realizza quanto vorrei ma sullo schermo si vede una sorta di "lampeggiamento"! VVoVe:

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Non si dovrebbe richiamare direttamente Application.Terminate.

    Non comprendo più che altro il nesso con quello che devi realizzare.

    Per determinare se il server di destinazione è attivo, sarebbe sufficiente tentare di accedere ad uno dei file ospitati sulla macchina e verificare l'esito dell'operazione.

    Ad ogni modo, nulla vieterebbe al server di diventare "inattivo" mentre l'applicazione è in esecuzione, o viceversa.

    Vedere un errore per server non disponibile quando il server non è effettivamente disponibile, non mi sembra così strano o insolito.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    La descrizione dell'errore, in effetti, potrebbe essere anche quella che viene data di default, il fatto è che quando si verifica quest'errore vorrei che il programma si chiudesse e non che continuasse all'infinito a farmi presente che non riesce a reperire questo o quel file perchè non trova il percorso.
    Cosa devo scrivere se Application.terminate non va bene? Il mio codice è:
    codice:
    try
          ImgCopertina.Picture.LoadFromFile(ImgBkgPath + 'ImgCopertina.jpg');
          except
        ShowMessage('Connessione al server non riuscita');
        application.Terminate;

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da vicky
    La descrizione dell'errore, in effetti, potrebbe essere anche quella che viene data di default, il fatto è che quando si verifica quest'errore vorrei che il programma si chiudesse e non che continuasse all'infinito a farmi presente che non riesce a reperire questo o quel file perchè non trova il percorso.
    Quando si verifica un'eccezione all'interno di un metodo, l'esecuzione di quel metodo si interrompe. Se il messaggio appare in continuazione, evidentemente hai assorbito o rimosso l'errore e ritenti, nel contempo, di caricare l'immagine.

    Ad esempio, supponendo che tu abbia un metodo che carica 2, 3, 100 immagini, se fallisce il caricamento della prima, le altre non vengono eseguite poiché la procedura si conclude.

    Se invece intercetti l'errore, lo assorbi e quindi l'esecuzione continua.

    Si dovrebbe esaminare un po' di codice per stabilire qual è la condizione avversa.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.