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

    [DELPHI]connessione database

    Sto cercando di gestire eventuali errori del mio applicativo che utilizza i componenti dbExpress e un db Firebird.
    Ho quindi spostato il db in una cartella diversa (rispetto a quella originale) e mi aspetto che il programma si blocchi quando cerca di aprire la connessione. L'errore, invece, avviene all'avvio dell'eseguibile. Questo mi farebbe pensare che la connessione venga aperta all'avvio dell'applicativo, ma in realtà il componente SQLConnection1 è stato inserito in un form che non è il mainform ma che viene richiamato a partire da un button situato nel mainform. Come è possibile? (Se devo gestire quest'errore devo sapere anche dove inserire il costrutto try...except)
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Temo che tu compili e lanci il programma con la proprietà Connected a True sul componente che instaura la connessione con il database.

    Verifica che sia a False prima di compilare.

    Se l'apertura avviene da codice, potrai racchiudere in un costrutto try...except la chiamata al metodo Open che implementa l'apertura.

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

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

  3. #3
    A design time la proprietà connected della connessione è impostata a false e da codice nell'evento oncreate del form che contiene il componente SQLConnection ho impostato a true la connessione.
    Questo, invece, è il codice per gestire l'eccezione:
    codice:
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
      try
        formDatabase.SQLconnection1.Open ;
    
        except
    
        on E:exception do
        showMessage('Impossibile collegarsi al database');
        end;
        begin
    
          Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+
          'bkg\' + 'Imagebkg.jpg');
               end;
    
    end;
    formDatabase è il form che contiene tutti i componenti per l'accesso al database. Non è però un datamodule, ma solo un form secondario a cui accedo tramite pulsante posto nel MainForm.


  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    118
    Scusate se sfrutto questo Thread, ma per non creare un altro Thread simile.

    Sempre a proposito di connessione al DataBase,io non riesco a connettere il mio client al Database Firebird.

    Come componente di connessione al DB remoto utilizzo TIBDatabase , nel campo DatabaseName , specifico la directiory del file creato da Firebird più la directory di Firebird.

    Devo caricare una Dll?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da cshark
    Scusate se sfrutto questo Thread, ma per non creare un altro Thread simile.
    Se l'argomento è diverso, puoi creare un altro thread, più che altro perché la risposta al tuo quesito è senz'altro differente da quella relativa alla domanda originale.

    Apri una nuova discussione.

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

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

  6. #6
    Riprendendo il mio post iniziale forse non è così importante se il programma si blocca subito all'avvio dell'applicazione o piuttosto solo quando cerco di aprire la connessione al database nel form secondario. Quello che invece per me conta è che con il costrutto try...except riesco si ad avere il messaggio da me deciso che avvisa l'utente sull'impossibilità di stabilire la connessione al database ma subito dopo appare la finestra di errore di DBexpress che avvisa che la connessione è fallita. Quindi ho 2 messaggi di errore successivi. Io vorrei evitare il secondo. Credo che in quel caso non si tratti di gestire un eccezione ma proprio un Database Server Error di dbExpress che evidentemente deve essere intercettato in un modo diverso. O sbaglio?

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.