Použití Data Environment Designeru ve VB 6.0 |
![]() |
Variabilní cesta k databázi
V jednom z předchozím dílu jsem upozorňoval na to, že datové prostředí si pamatuje cestu k databázi, kterou jste použili při vývoji aplikace a pokud aplikaci nainstalujete do jiného adresáře, generuje chybu. Je proto nutné cestu k databázi nastavit programově. Nastavení nové cesty k databázi je nejvýhodnější provést při inicializaci datového stroje. Otevřete si datové prostředí v projektu a ve stromu dvakrát klikněte na značku datového stroje (root node). Otevře se okno kódu pro proceduru DataEnvironment_Initialize. Sem napište STOP a spusťte projekt. Až se aplikace stopne, do okna Immediate (CTRL+G) si nechte vypsat řetězec připojení pomocí příkazu:
?de.Cnn.ConnectionString
Mělo by se vám vypsat zhruba něco takovéhleho:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\serialy\Projekty\de1\de.mdb;Persist Security Info=False
Podstatný je řetězec Data Source - určuje cestu k databázi. Takže celý řetězec vesele změníme tak, aby si datové prostředí bralo databázi z aktuální adresáře, kde je uložena aplikace:
De.Cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\de.mdb;Persist Security Info=False"
Zpětné lomítko před názvem databáze má své opodstatnění, protože příkaz App.Path sice vrátí aktuální cestu, ale bez zpětného lomítka, čili je ho tam třeba přidat. Pokud máte vše korektně zapsáno, demoprojekt by měl fungovat stejně, jenom si umí vzít databázi z aktuální cesty. Samozřejmě by bylo vhodné si předem ošáhnout, zda se databáze vůbec v adresáři určeném App.Path nachází (což je obzvláště důležité při psaní síťových aplikací). Doporučuji to udělat v proceduře Main v modulu, při startu aplikace ještě dříve, než vůbec nějaký požadavek na datové prostředí pošlete. Na základě výsledku dotazu na existenci databáze se můžete rozhodnout, zda pokračovat, či nikoliv. Mám vyzkoušeno, že datové prostředí si klidně vezme i cestu ze sítě, nemusíte tedy předtím připojovat síťový disk. |
![]() |
Autor: The Bozena |