Nella realizzazione di un programma che accede ad un database tramite un percorso, si dovrebbe sempre fare in modo che tale percorso sia relativo, poichè ciascun utente potrebbe scegliere una destinazione diversa per l'applicazione e, indirettamente, anche per il database, se questo viene installato nella cartella del programma o in una sottocartella della stessa.
Per determinare il percorso del database a runtime, potresti utilizzare un percorso relativo rispetto alla cartella corrente, che solitamente è la cartella in cui si trova l'eseguibile, oppure costruire un percorso per la stringa di connessione utilizzando la funzione API ExtractFilePath - credo si chiami così - passando come parametro Application.ExeName. Ecco un esempio di codice
Nel tuo caso, potendo decidere la cartella di destinazione del database da InstallShield (che potrebbe essere del tutto differente da quella di installazione del programma), forse la soluzione migliore sarebbe creare un alias per il database (ODBC, nel tuo caso).codice:sPathDB := ExtractFilePath(Application.ExeName) + 'nomedb.mdb';
InstallShield Express Limited Edition per Delphi incorpora finestre di dialogo che permettono di creare alias; ti basta utilizzare come percorso la macro <DATABASEDIR>, che viene sostituita da InstallShield con il percorso scelto per le basi dati.
Prova a fare qualche prova...
Ciao!![]()

Rispondi quotando