Newsgroup: it.comp.lang.delphi
Titolo: Ado e Access

Salve a tutti,
con D7 ho creato un'applicazione che tramite i componenti ADO (TDataSource e 
TAdoTable) si collega alla tabella di un database Access. I file di progetto 
con il file eseguibile sono contenuti in una cartella del disco C. Se ora 
sposto la cartella in un altra posizione o in un'altra partizione del disco, 
sia che avvii il progetto o che mandi in esecuzione il file compilato, non 
trova pių il percorso del database.
Infatti questo percorso si trova nella proprietā ConnectionString del 
componente TADOTABLE.
Come posso ovviare all'incoveniente?
Grazie 

 ovviare all'incoveniente?
Modifica la ConnectionString all'avvio, prima di connetterti al
database in modo da puntare alla nuova locazione del database.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 Vieni a fare uno stage con noi:
http://www.creativepark.it/stage/
Sono megio i componeti ado per i data base access oppure vanno bene
anche i componeti dbexspress??
Grazie

 anche i componeti dbexspress??
Se non erro i driver dbExpress che accedono a Microsoft Access passano
o per ADO o per ODBC. In entrambi i casi IMHO è meglio utilizzare
direttamente ADO.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto sviluppatore Delphi?


 Vieni a fare uno stage con noi:
http://www.creativepark.it/stage/
Grazie mille per il tuo interesse!!

 componeti mi daresti qualche dritta per connetterlo?

 database in modo da puntare alla nuova locazione del database.
Ma non esiste un modo per farlo automaticamente?
Grazie.


 Ma non esiste un modo per farlo automaticamente?
Che cosa intendi per "automaticamente"?
Dal punto di vista di Delphi saranno si e no un paio di righe di codice.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista Delphi?


 Dal punto di vista di Delphi saranno si e no un paio di righe di codice.
Quindi dovrei ogni volta (dall'object inspector) modificare la 
connectionstring del tadotable prima di compilare ed eseguire il programma?


 programma?
Ha parlato di "codice", quindi direi che bisogna farlo a runtime ...
Fai una ricerca su questo gruppo: si e' parlato piu' volte di 
"connectionstring".
Ciao
-- 
ACSH
[TurboDelphi]
Chi fa da se', fatica il doppio

 
Ma se poi l'utente sposta la base dati il programma non la trova.
Mi sembra di capire che è questo il problema.
Cio'è tu vorresti consentire all'utente di scegliere ed eventualmente
spostare la cartella con DB+esegubile, quindi devi fare riferimento alla
cartella dell'esegubile.
mario

 mario
Esatto proprio cosě. Quindi come si potrebbe fare per fare riferimento alla 
cartella dove c'č il database?

 riferimento alla cartella dove c'h il database?
Modifica la ConnectionString all'avvio, prima di connetterti al
database in modo da puntare alla nuova locazione del database.
Visto che la ConnectionString e' una stringa, e' sufficiente conoscere
le funzioni di manipolazione delle stringhe e la funzione
ExtractFilePath().
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?



Insomma: se imposti la connessione a designe time e guardi la 
connectionstring vedi che ci sono scritte varie cose: un pezzo di essa 
consiste nel nome (path compreso) del database: C:\....\yy.mdb.
Se il database ha una posizione relativa rispetto al tuo exe, all'avvio del 
programma con Application.exename sai l'intero path di dove si trova il tuo 
exe, quindi ExtractPathFile( Application.exename ) ti da il path del tuo 
exe, quindi su questo ti ricavi la posizione del tuo db (se p.e è nella 
stessa cartella dell'eseguibile sarà
ExtractPathFile( Application.exename ) + 'yyy.msb' (una sola istruzione)
e sostituisci sto pezzetto nella connectionstring. (seconda istruzione)
Ciao.
Gianni