Předmět Autor Datum
Pravim click >> new field >> name = napr.: (client), type = (string) size = (20) ty zavorky tam nepi…
virus 23.06.2006 13:31
virus
Vidím, že sa zabávaš. Ale teraz vážne. Ak nie je databáza, do ktorej by sa dalo zapisovať a pokúsiš…
msx. 23.06.2006 13:41
msx.
Ne spatne jsem te pochopil, myslel jsem ze uz mas DB vytvorenou , jeste dotaz jakou chces pouzivat I…
virus 23.06.2006 14:21
virus
Podľa možnosti BDE, lebo to jediné ovládam (takže nie dbExpress ani Interbase, ale pre zaujímavosť m…
msx. 23.06.2006 14:55
msx.
V BDE je databází adresář. Ten vytvoř třeba přes CreateDir. Tabulky dovnitř vyrobíš velice jednoduše…
Rce 23.06.2006 15:01
Rce
Aj som si na teba myslel, že sa ozveš. No to by bolo dobré zverejniť ten zdroják, lebo takto moje pr…
msx. 23.06.2006 15:46
msx.
V BDE je databází adresář. Toto som nepochopil. Mám chápať, že databáza je BDEčkom chápaná ako adre…
msx. 23.06.2006 15:48
msx.
Podivej se na componentu TDatabase ta to ma nastarosti.
virus 23.06.2006 16:14
virus
No tak toho je na mňa žiaľ moc. Asi sa s tým budem musieť hrať.
msx. 23.06.2006 20:50
msx.
V Objektu TTable můžeš v klidu do vlastnosti DatabaseName narvat cestu (adresář). Když pak klikenš u…
Rce 24.06.2006 00:16
Rce
S tou sieťou to poznám. Riešili sme to s účtovníctvom MRP v bývalom zamestnaní. Niekedy to dalo riad…
msx. 24.06.2006 13:24
msx.
Ešte otázka. Znamená to teda, že ak použijem v programe BDE a na začiatku v OnCreate ošetrím, či je…
msx. 24.06.2006 13:30
msx.
Cau Milos sory ale odbocim od temy, kde si ked sa ta neda zastihnut,chcem sa ta len opytat ci ti pri…
Josip 24.06.2006 13:56
Josip
Ja platím mesačne.
msx. 24.06.2006 14:03
msx.
Ked platis mesacne tak teraz ti uz prislo platit,nevies poradit ked mi nepride platit ze by na mna z…
Josip 24.06.2006 15:00
Josip
Veď zaplať to tak, ako predchádzajúcu faktúru a nechaj si pre prípad doklad.
msx. 24.06.2006 17:41
msx.
Jestli na hlavním formu máš nějaké komponenty BDE (TTable,...), je v OnCreate pozdě - už se iniciali… poslední
Rce 25.06.2006 00:40
Rce

Vidím, že sa zabávaš. Ale teraz vážne. Ak nie je databáza, do ktorej by sa dalo zapisovať a pokúsiš sa ju otvoriť, tak máš prvú výnimku. Za každý ďalší prístup do neexistujúcej databáze (vlastnosť Active = False) je ďalšia výnimka. Ak to aj ošetríš, tak tá databáza sa sama nevytvorí a všetky údaje pri ukončení programu stratíš.

A teraz čisto teoreticky:
Čo urobíš, ak potrebuješ začať s prázdnou databázou a nechceš sa zdržovať? Surovo vymažeš databázu z adresára programu a dobrý program to musí bez problémov zvládnuť. Predstav si, že vymažeš v nejakom programe inicializačný súbor *.ini a program ťa s úsmevom na monitore pošle hľadať inštalačku.;-)

Ne spatne jsem te pochopil, myslel jsem ze uz mas DB vytvorenou , jeste dotaz jakou chces pouzivat IBase nebo Mysql ?? Ono je to celkem jedno jakou sql, prikaz muzes zadat stejne jako v php treba v Tmemo , to pak posilat jako pozadavek na server DB .Stejne tak lze vytvaret a mazat DB, nevim zda to nechces natvrdo primo aby to program delal vse sam.

Podľa možnosti BDE, lebo to jediné ovládam (takže nie dbExpress ani Interbase, ale pre zaujímavosť môžu záujemci napísať aj to). No a chcel by som vytvoriť štandartnú tabuľku Paradoxx 7, takže žiadne SQL, ale obyčajné TTable.

Edit: Presne tak, potrebujem vytvoriť databázový súbor na disku z ničoho.:-)

V BDE je databází adresář. Ten vytvoř třeba přes CreateDir. Tabulky dovnitř vyrobíš velice jednoduše. Do TTable umístěné na formu nebo na TDataModule vytvoř všechny pole a tabukla včetně všech indexů (které taky nacpi do TTable) vytvoříš pak Jméno-tabulky.CreateTable.

//Edit: Před jméno-tabulky.CreateTable je vhodné dát jméno-tabulky.TableLevel := 7; aby byla opravdu ve tvaru Paradox 7 (tím obejdeš, že tohle má být nastaveno v BDE Adminu).

//Edit2: Jestli chceš, a jestli chtějí ostatní, mohu někam vystavit zdroják mého objektu, který obsahuje spousty užitečných rutin pro práci s BDE (např. kopírování tabulek, struktur, vytvoření pracovní tabulky v adresáři TEMP atd). Na začátku obsahuje otestování, jestli je BDE nainstalováno, jestli je správné verze, jestli to jiný program nezablokoval. Dál vytvoří objekt TDatabase, ktetý když najde databázi založenou BDE Adminem tak se k ní připojí jinak si vytvoří dočasnou, kterou po sobě na konci uklidí (data pochopitelně nesmaže), nastaví Sessions a nastaví Paradox na práci s češtinou. Je to sice součástí dalšího systému podprogramů, nepůjde to rovnou přeložit (budou chybět pomocné rutiny) ale pro inspiraci (nebo když si to někdo upraví) a použití různých rutin (ty by měly fungovat jak jsou) to poslouží skvěle. Ale vystavit to můžu až v noci, až to pořádně okomentuju.

Aj som si na teba myslel, že sa ozveš. No to by bolo dobré zverejniť ten zdroják, lebo takto moje programy vyzerajú dosť neohrabane. Taktiež ako balzam na dušu pôsobí PDOXUSRS.NET na C:\.;-) Ale to som už s Janom Fialom prediskutoval a niekedy sa pustím aj do bádania v tomto.

V Objektu TTable můžeš v klidu do vlastnosti DatabaseName narvat cestu (adresář). Když pak klikenš u této tabulky na rozvírací combo ve vlastnosti TableName, uvidíš všechny soubory *.db v uvedeném adresáři. Také můžeš tabulku napojit na objekt TDatabase a před otevřením databáse narvat do vlastností TDatabase.Directory cestu. Počkej chvíli, už komentuju ten zdroják, zachvíli v tomto vláknu bude odkaz.

//Edit: Tak je to tady: Rce_BDE.pas (120Kb). Berte jako inspiraci, přeložit to nepůjde, ale rutiny jsou funkční. Při vytváření objektu Rce_BDE je v konstruktoru TRce_BDE.Create nastavení systému BDE, kontrola jestli jede a připojení k databázi z BDE Admina nebo se vytvoří přechodná databáze podle zadaného adresáře. V destruktoru se po sobě zase uklidí. Nasměruje to i Pdoxusrs.net do datového adresáře (všichni klienti sítě, používající stejnou databází musí používat stejný soubor Pdoxusrs.net).

Ešte otázka. Znamená to teda, že ak použijem v programe BDE a na začiatku v OnCreate ošetrím, či je BDE nainštalované atď., tak nedojde k výnimke? Pýtam sa preto, lebo ak sa použije knižnica na priehľadné okná v C++ a program sa spustí vo Win98, tak sa zrúti okamžite, lebo nenájde vstupný bod funkcie v knižnici DLL. Takisto sa zrúti program, bez možnosti kontroly, napísaný v Turbo Pascale s necracknutou verziou knižnice CRT na počítači od 200 MHz vyššie. Len škoda, že vlastne ani takýto crack nie je legálny.:-(

Jestli na hlavním formu máš nějaké komponenty BDE (TTable,...), je v OnCreate pozdě - už se inicializovaly ty komponenty a na nich to zhavaruje. Je to třeba otestovat v konstruktoru - máž pak dokonce vynikající možnost ustřelit aplikaci: Když dáš do konstruktoru ABORT, form se nevytvoří a je-li to main form, aplikace se ihned ukončí.

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