Předmět Autor Datum
Pouzij komponentu TSession a tu prirad databazi, popr. vychozi objekt TDatabase.Session Musis nastav…
Jan Fiala 09.05.2007 08:19
Jan Fiala
Vyzerá to jednoducho, ale veľmi tomu nerozumiem. Mám databázu urobenú tak, že mám nejaké TQuery, kto…
msx. 09.05.2007 11:32
msx.
Pouzij komponentu TDatabase, nastav jeho property Database.Session cestu a v QUERY vypln property Da…
Jan Fiala 09.05.2007 11:39
Jan Fiala
Ak správne rozumiem tak: Database.Session := PrgDir + DBDir; Query.Database := Database;
msx. 09.05.2007 11:56
msx.
Vraj je to read only vlastnosť (v helpe to bolo naznačené zápisom pre C++).
msx. 09.05.2007 11:58
msx.
Tohle urcite ne. TSession je objekt. Nemuzes do nej priradit retezec. Takze radeji: Session.NetFileD…
Jan Fiala 09.05.2007 12:04
Jan Fiala
Dobre, ale ako s TQuery?
msx. 09.05.2007 12:50
msx.
Prostuduj si zdroják Rce_BDE.pas, který jsem ti kdysi posílal. Cesta se nastavuje v metodě SetSessio…
Rce 09.05.2007 13:19
Rce
A já dodám, že nejen stejný, ale podle doporučení namapovaný na stejném síťovém disku (stejné písmen…
Jan Fiala 09.05.2007 13:30
Jan Fiala
Tam to ide ešte cez tvoj objekt TRce a to je na mňa dosť. Ešte to samozrejme študujem, ale nie je to…
msx. 14.05.2007 11:52
msx.
No nič, takže ešte raz: TfrmMain.DatabaseBeforeConnect(Sender: TObject): Database.Session.NetFileDi…
msx. 14.05.2007 12:41
msx.
1. Místo do TfrmMain.DatabaseBeforeConnect to klidně prdni do FormCreate. 2. U TQuery to je celkem…
Rce 14.05.2007 13:48
Rce
RCE, ďakujem!!! Točil som sa okolo správneho riešenia ako prd v gaťách a toto ma nenapadlo. Posielam…
msx. 14.05.2007 22:43
msx.
prečo JaFi radil aj úpravu v Query Taky je to jedna z možností :-). Protože v BDE je databází adres…
Rce 14.05.2007 23:16
Rce
Kdybys to ale přes BDE Admin připojil třeba na Oracle, nevystačíš si už jen s jednoduchou cestou k d…
msx. 14.05.2007 23:35
msx.
[http://smiley-online.com/images/gif/bravo/vignette/ thumbnails/yaisse_gif.gif]
Rce 15.05.2007 00:46
Rce
JaFi radil Database ke Query, abys nemusel vypisovat cestu, k adresari. Tu si nastavis na jednom mis…
Jan Fiala 15.05.2007 06:48
Jan Fiala
Dobre, pre moje potreby to fungovalo aj tak, ako radil Rce, ale ako to dostať do Query, keď to sa br…
msx. 16.05.2007 17:55
msx.
To RCE: Aliasy? Fůj. Všechno můžeš natavit v TDatabase (...) Jj. Vím, vím. Přes aliasy je to trošku… poslední
Rce 16.05.2007 23:03
Rce

Prostuduj si zdroják Rce_BDE.pas, který jsem ti kdysi posílal. Cesta se nastavuje v metodě SetSessionPath. Pozor, v BDE musí mít všichni uživatelé, přistupující ke společným sdíleným síťovým datům, stejný PDOXUSRS.NET! Když cestu nastavíš u defaultní Session, bude platit automaticky pro všechna data v programu.

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 :-).

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.

Kdybys to ale přes BDE Admin připojil třeba na Oracle, nevystačíš si už jen s jednoduchou cestou k datům

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...

To RCE: Aliasy? Fůj. Všechno můžeš natavit v TDatabase (...)

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 :-D:-D. 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 ;-).

Zpět do poradny Odpovědět na původní otázku Nahoru