Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    [Delphi]: percorso database

    una domanda, anzi due: io uso ado per connettermi ad un database access. Tutte le table così come la connessione al database sono inserite in un Datamodule. Nella connection string ho dovuto specificare il percorso completo del database (es. C:\programmi\assistenza\mdb\database.mdb). Dovendo installare il programma su una macchina che ha ad esempio come disco fisso l'unità E: probabilmente il mio applicativo non funzionerà. Come posso evitare questo inconveniente??? Inoltre: volendo far funzionare il programma in rete come posso variare il percorso del database su ogni macchina client dopo aver installato il pacchetto con Installshield???

    ciao!

  2. #2
    up!
    Maurizio Manna
    www.f1grandprix.it
    News, foto, storia, cifre, chat, forum, wallpaper, screen saver e altro ancora sulla Ferrari e la Formula 1

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,282
    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
    codice:
    sPathDB := ExtractFilePath(Application.ExeName) + 'nomedb.mdb';
    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).
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    48

    mhmh

    ado non conosco xkè uso IB
    ...ma...
    non bastarebbe fare l'ODBC?!?!
    FatMax

    Italian Programmer

  5. #5
    Originariamente inviato da alka
    forse la soluzione migliore sarebbe creare un alias per il database (ODBC, nel tuo caso).
    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!
    a dire il vero ho utilizzato ADO con una connessione tramite Jet 4.0 perchè la connessione ODBC era moooltooo lenta...
    ho sentito parlare di file .ini per la gestione del percorso del DB, ne sapete qualcosa in + ???
    Maurizio Manna
    www.f1grandprix.it
    News, foto, storia, cifre, chat, forum, wallpaper, screen saver e altro ancora sulla Ferrari e la Formula 1

  6. #6
    Originariamente inviato da alka
    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
    codice:
    sPathDB := ExtractFilePath(Application.ExeName) + 'nomedb.mdb';
    Quindi devo inserire il codice che mi ha dato al posto della connectionstring della adoconnection????

    ciao!

  7. #7
    questa è la stringa contenuta nella connection string. Come faccio a trasformare il percorso assoluto (E:\documents...) in percorso relativo????

    codice:
    Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\Documents and Settings\Design4You\Desktop\prova2.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,282
    Dovrebbe essere sufficiente esprimere il percorso relativo del database prendendo come punto di partenza la directory in cui risiede il file eseguibile.

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

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

  9. #9
    cioè???

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

    Percorso relativo?

    Hai dei dubbi su come specificare esattamente il percorso relativo?
    Prova a leggere questo thread:
    http://forum.html.it/forum//showthre...hreadid=259945

    Una volta appreso come esprimere un percorso relativo, dovrai inserire l'indirizzo nella proprietà che contiene la stringa di connessione. A differenza del percorso assoluto, il percorso relativo si esprime in base alla directory corrente in cui ci si trova (appunto per questo si dice "relativo"); la directory che dovrai prendere in considerazione è quella del file eseguibile del programma compilato (il tuo EXE).

    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 © 2024 vBulletin Solutions, Inc. All rights reserved.