Newsgroup: it.comp.lang.delphi
Titolo: Alia "dinamico" , si puo' ?

Salve a tutti,
credo di essere rimasto uno dei pochi che ha ancora in piedi procedure con
archivi paradox e BDE a pilotare il tutto, e adesso ho questo problema,
dovrei dividere i dati di una tabella in base agli anni, quindi da tabella 1
con dati dal 1980 al 2003 dovrei fare 6 tabelle con dati dal 1980 al 1986
dal 1987 al 1991 etc.
L'utente dovrebbe poter scegliere ad avvio procedura quali tabelle avere in
linea (1 sola fra tutte).
Il problerma e' che non vorrei assolutamente toccare una riga di codice ne
creare piu' di un exe.
L'unica soluzione che ho trovato fino ad ora e' di creare l'alias sul bde
administrator dandogli ogni volta il percorso della tabella voluta, ma e'
quasi assurdo, se l'utente vuole cambiare anni in linea deve spengere il pc
ed al riavvio lanciare il programmino che gli permette di scegliere gli anni
da gestire !
Esiste un modo per poter prima che parta la procedura dire al BDE che
l'alias "pippo" ha il percorso c:\xxx\yyy ?
Cosi' facendo potrei semplicemente creare un prog. iniziale in cui l'utente
sceglie gli anni che vuole gestire, il mio alias presente sull'exe va a
puntare il percorso con la tabella contenente i dati voluti ed io non tocco
niente di quello che gia' funziona  !
alternative ?
grazie a tutti , buona giornata !

Mi son mangiato la s di alias, scusate , sta' bega mi uccide !!!!!!!!!!!!!

 Mi son mangiato la s di alias, scusate , sta' bega mi uccide !!!!!!!!!!!!!
Non solo. ti sei mangiato anche la "e" di "Re:" nell'oggetto del messaggio.
Aggiorna a internet explorer almeno alla 5.5, che la tua č un groviera e ci
passano tutti i virus di questo mondo
Ciao
Matteo


Ciao,
non so se sia possibile "niente di quello che gia' funziona", ma ti posso
dire come ho fatto io in un caso analogo.
All'entrata del programma chiedo quale archivio si vuole usare ed
inizializzo una variabile con il path dell'archivio, poi all'apertura di
ogni file

Azz......
Ho schiacciato invio per sbaglio, scusate, continuo
.....nella istruzione BeforeOpen inserisco il path+il nome del file da
aprire
esempio
procedure TVendBeforeOpen(DataSet: TDataSet);
begin
   TVend.TableName  := (Jpath+'Vend.DBF');
   TVend.IndexFiles.Add(Jpath+'Ven01X.ndx');
   TVend.IndexFiles.Add(Jpath+'Ven02X.ndx');
   TVend.IndexFiles.Add(Jpath+'Ven03X.ndx');
   TVend.IndexFiles.Add(Jpath+'Ven04X.ndx');
end;
Devi lavorarci un poco, ma poi puoi aggiungere tutti gli anni che ti pare
solo cambiando i parametri alla variabile (Jpath).
Non sarà il medoto migliore, però funziona.
Ciao
--
MaoSw
Reporter Professional srl
support...@reporterprofessional.it

Ho schiacciato invio per sbaglio, scusate, continuo
Sei un grande.... :-DDDD
-- 
Morde. 
(morde at programmer dot net)

 l'alias "pippo" ha il percorso c:\xxx\yyy ?
Il modo esiste. Devi usare l'oggetto TDatabase. Le tabelle e le query non
puntano piu' all'alias BDE ma al TDatabase. L'oggetto TDatabase ha una
proprieta' Params di tipo tstrings. La proprieta' importante e' questa:
'path=percorso delle tabelle', che ovviamente puo' essere settata a runtime
Io per inizializzare il tutto faccio una roba del genere:
if mydb.Connected then
    mydb.connected:=false;
  if trim(paramstr(1))<>'' then
     mydb.params.text:='path='+paramstr(1)
  else
    mydb.params.text:='path='+ExtractFilePath(paramstr(0))+'archivi\';
  mydb.Connected:=true;
  TBL1.Open;
  TBL2.Open;
ecc. ecc.
Le tabelle Come database non hanno un alias ma hanno mydb
Se l'eseguibile non ha parametri cerca le tabelle nella cartella Archivi,
altrimenti setta il path passato come parametro
Ciao
 Max

 da gestire !
Se vuoi ti passo del codice che ti cambia la volo la directory dell'alias
del bde che sta usando. però te lo devi spulciare un pochettino perchè in
mezzo ci sono delle cose che non servono
ciao fabrizio

 ciao fabrizio
E' esattamente cio' che cerco !!!!!!!!!!!!!
sono disposto a "sezionarla" riga per riga, mi faresti una grande cortesia
!!!!!
ciao Claudio


Grazie del suggerimento, puo' funzionare, il problema e' che non ho solo una
forma con una tabella, ma un'intera procedura con decine di form, e
inizialmente  avevo un bel datamodule, poi col tempo la fretta le aggiunte
mi ritrovo con il datamodule con diverse ttable che puntano alla stessa
tabella paradox, e molte ttable sparse sulle form, e' proprio per questo che
vorrei poter cambiare il path dell'alias prima di lanciare la procedura
principale,
perche' cosi' non tocco l'alias, solo che se riesco prima a farlo puntare a
percorsi diversi prendo le tabelle che voglio.
cia e grazie