

Delphi - BDE - Ako určiť cestu, kde sa vytvorí PDOXUSRS.NET?
Čo treba urobiť, aby sa súbor PDOXUSRS.NET nevytvoril na C:\ na na mnou určenej ceste?
Čo treba urobiť, aby sa súbor PDOXUSRS.NET nevytvoril na C:\ na na mnou určenej ceste?
Zpět do poradny Odpovědět na původní otázku Nahoru
No nič, takže ešte raz:
TfrmMain.DatabaseBeforeConnect(Sender: TObject):
Database.Session.NetFileDir := PrgPath + DBDir;
Database.Session.PrivateDir := PrgPath + DBDir;
TfrmMain.FormCreate(Sender: TObject):
Query.Database := ??? <- čo priradiť sem? je to vlastnosť len na čítanie, čo s tým?
Query.DatabaseName := PrgPath + DBDir;
1. Místo do TfrmMain.DatabaseBeforeConnect to klidně prdni do FormCreate.
2. U TQuery to je celkem fuk, nemusíš tam dávat nic, jestliže v SQL příkazu uvedeš celou cestu k tabulce(tabulkám) Tedy: TQUery.Database nedávat nic (správně tam ani nic nejde dát). Do TQuery.DatabaseName taky klidně nic (a tabulky určit celou cestou). Když už něco, tak cestu k hlavním datům. Lze zde také zadat Alias dat, který nastavíš v BDE Administratoru.
V tom mým modulu je to trošku komplikovanější, protože ten zjišťuje, jestli existuje Alias databáze z BDE Administratoru (aby fungovalo napojení třeba na jiné databáze než BDE). Když takový nenalezne, vytvoří si dočasný Alias na vlastní triko na nastavenou cestu dat ze spuštění programu
.
RCE, ďakujem!!! Točil som sa okolo správneho riešenia ako prd v gaťách a toto ma nenapadlo. Posielam
.
Presunul som to z TfrmMain.DatabaseBeforeConnect do TfrmMain.FormCreate a funguje to. Len by ma zaujímalo, prečo JaFi radil aj úpravu v Query.
Taky je to jedna z možností
. Protože v BDE je databází adresář, lze to obojím způsobem. Kdybys to ale přes BDE Admin připojil třeba na Oracle, nevystačíš si už jen s jednoduchou cestou k datům (ani jí nebudeš vědět), ale musíš to napojovat přes Alias databáze
.
PS: V DatabaseBeforeConnect je už pozdě na nastavování dat, tato událost je určena k ošetření uživatelského jména a hesla k databázi.
To je na mňa moc. Na to, že som s ozajstnými databázovými programami začal len koncom minulého roka som na tom celkom dobre. Teraz mám už jeden čisto Delphi + SQL program za sebou (aj vďaka osadenstvu poradne) a už sa vychytávajú muchy.
JaFi radil Database ke Query, abys nemusel vypisovat cestu, k adresari.
Tu si nastavis na jednom miste - v TDatabase.
Predstav si, ze budes mit program, ktery bude mit data pro jednlive roky ulozneny v jednotlivych adresarich. Co je jednodussi pri prepnuti roku? Nastavit cestu na jednom miste v TDatabase nebo to osetrovat pro kazdou komponentu, ktra k datum pristupuje?
To RCE: Aliasy? Fůj. Všechno můžeš natavit v TDatabase a jejich parametrech a to i programově. Být zavislý na Aliasu, který ti může kdokoliv zlikvidovat... A navíc bys jej musel nastavovat na všech stanicích...
Dobre, pre moje potreby to fungovalo aj tak, ako radil Rce, ale ako to dostať do Query, keď to sa bránilo zubami-nechtami?
Jj. Vím, vím. Přes aliasy je to trošku nezávislejší na prostředí. Můžu (teda kdybych náhodou někdy chtěl
) to napojit jak na MQSQL, tak i na MySQL... I když na to raději používám ADO, než BDE
. Jeden můj program při nastavování databází programově nádherně všem odstřelil InfoMapu 
. BTW přes BDE Administrátora jsem to stejně dělal asi jen jednou, ale tu možnost v programech mám. Když to nenajde alias z BDE Admina, udělá si to přechodně samo svoje
.