Newsgroup: it.comp.lang.delphi
Titolo: Aiuto....

Salve a tutti,sono nuovissimo del gruppo e anche della programmazione
Delphi...Vorrei avere dei chiarimenti su una cosa che mi sta facendo
impazzire.Ho sviluppato un programma di ricerca dati con D7 e utilizzo
access 2000.Ho 1 bel problema...devo fare le interrogazioni sul mio Db
su una Directory generica,per esempio se utilizzo l'exe da un cd,dovro
interrogare il db che starà su E:\,F:\...
C'è qualche function che mi estrae questo path?
Come gli passo i parametri alla ConnectionString?
Se è possibile,vorrei direttamente il codice visto che ho pochissima
esperienza...
Grazie a Tutti...

 esperienza..
Ognuno di noi si è trovato nella tua situazione.
L'unico modo di arrivare alla seconda volta è passare per la prima.
La stringa di connessione la puoi salvare su un file.
Per leggere un file cerchi nell'help la funzione "assignfile".
Per assegnare una stringa di connessione cerchi nell'help
"TAdoConnection"
Non è un buon inizio ne una buona presentazione dire che si è alle
prime armi e contemporanemente dire implicitamente che si DESIDERA
restare
in questa situazione chiedendo la pappa pronta.
Benvenuto a bordo.
AS

Alberto Salvati ha scritto:

intanto Voglio ringraziarti e le cose che hai detto sono vere...Cmq non
voglio la "poppa"pronta ma solo una spiegazione Molto semplice...
Io fatto delle prove  con la funzione "ExtractFileDir".Mi da come
valore di ritorno il path dell'exe.Se lo salvo in una variabile,Posso
assegnarla
poi all'oggetto ado?sai darmi qualche dritta su come fare?!!!?Sono
completamente fuori strada???????
Grazie 1000...

 completamente fuori strada???????
ragiona!
Io ti parlo di leggere da un file esterno e tu parli di salvare in una
variabile..
A te non frega niente di salvare variabili, estrarre il path etc.
A te frega che A RUNTIME SIA LETTA LA STRINGA DI CONNESSIONE, punto e
basta!
Quindi, fai in modo che la strigna stia in un file esterno posto nella
stessa cartella dell'exe. Poi, nel file esterno ci scrivi la strnga che
vuoi.
Se ti serve una stringa diversa chiudi la app, aggiorni il file che
contiene la stringa e lanci nuovamente la app.
AS

Dimenticavo... usa subject significativi.
AS

ok Perfetto...la mia stringa però deve variare a seconda di dove stà
l'eseguibile...Forse non sono stato chiaro...io scrivo nel file
C:\aaaaa\aaaaa\nomefile.mdb  e salvo il tutto il un Cd da dare al
cliente...Se utilizeranno questo programma solo da cd senza scaricare
niente sul Pc,aprendo il file exe,ovviamente lui cerca il db nulla
cartella C:\aaaaa\aaaaa e darà sicuramente errore,o sbaglio!?!
Vorrei evitare questo problema e fare in modo da ricercare il db
direttamente sul path dove poggia l'exe.
Grazie x la pazienza...

 Grazie x la pazienza...

Buondiorno...
Sempre riguardo al problema sopraelencato,l'ho pensato così...
Nella mia form uso adoConnection, con la proprietà ConnectionString =
" ".
posso in qualche modo passare da codice i parametri richiesti
(Provider,Data Souce,Persist Security Info)?
Se si,Con un ExtractFileDir mi tiro fuori la directory dove poggia
l'exe,sono sicuro che il DB si trova sullo stesso Path,mi memorizzo
tutto in una variabile Stringa e la passo alla proprietà Connection
String.
Se il tutto è fattibile(cosa molto strana),avresti qualche esempio?
Ciao ciao

> Se il tutto è fattibile(cosa molto strana)
xche strana? :-|
1) Da ide vai sul tuo componente TAdoConnection
2) Copiati la stringa di connessione
3) crei una costante  "basestringaconnessione" e la metti nel
datamodule della tua app
4) a questa costante assegni come valore la stringa di connessione,
sostituendo la parte del path del db con il simbolo %
5) prima di aprire la connessione al db assegni la stringa di
connessione con questo:
  format(basestringaconnessione, [tuopath]);
AS

sorry: il punto 4 è errato...
 4) a questa costante assegni come valore la stringa di connessione,
sostituendo la parte del path del db con il simbolo %S
AS

Grazie tanto...Farò subito 1 po di prove.....

> Nella mia form uso adoConnection, con la proprietà ConnectionString =
errore grave.
sui form non devono stare componenti di accesso ai dati ma solo
componenti visuali:
pulsanti, listbox, edit griglie etc.
I componenti di accesso ai dati vanno nei datamodule.
Inizia da SUBITO ad abituarti a questo, a scrivere codice come si deve.
Altrimenti mischi logica e interfaccia, che è uno degli incubi
peggiori dello sviluppatore.
Ricorda: un form (interfaccia utente) ha nelle uses i data module
(logica) ma il contrario non dovrebbe mai avvenire.
AS

Non so come ringraziarti...ho risolto..... : - )
Cmq è vero,è molto difficile scrivere del codice in modo
"corretto",ma forse imparerò...
Ciao e grazie ancora........
Emanuele....