Průvodce založením firmy (převod/vytvoření dat na MSSQL, převod dat z MSSQL)

POZOR!: Před každou operací s daty je nutno provést jejich zálohu pro případ havárie.
Nejrychlejším způsobem zálohy SQL databází se jeví zkopírovaní SQL databází odpojených a po zkopírování připojených pomocí uložených procedur spav_odpojdata a spav_pripojdta popsaných v článku Uložené procedury v databázi master.

 
Legenda:

XXXX - číslo databáze (např. 0001, 5001, atd.)
SQL-DMO - knihova  instalovaná společně s SQL Serverem, s administrátorskými nástroji pro SQL server nebo s MSDE (neplacená omezená verze MSSQL)


Po klepnutí na tlačítko SQL/File v možnostech Varia (Nástroje -> Možnosti -> záložka Firmy) se zobrazí dialog Průvodce založením firmy s následujícími možnostmi:

 

1) Převést stávající data zvolených firem z file-serveru (souborů mdb) na SQL server.

Přechod na SQL (MDB na SQL): důležitá informace: Pozor, SQL server přistupuje k datům jiným způsobem než při využití dat v MDB souborech. Může se stát, že některé sestavy / tiskové formuláře (většinou se jedná o ty, které jsou připravené na míru) se mohou zpomalit přechodem mezi MDB a SQL. V takovém případě je pak nutná optimalizace těchto reportů pro SQL (předělají se dotazy a odkazy na data na předávací dotazy přímo pro SQL) - tyto optimalizace řešíme jako práci na zakázku=placený servis.

V případě práce s MDB databází se tato optimalizace nedá využít, jedná se pouze o situaci s daty na SQL. Někdy výrazně pomůže úprava dotazů s využitím kritérií předem (pokud vždy v sestavě filtrujete, je možné data předfiltrovat předem a tím se také výrazně zrychlí práce s daty).


Tato volba má za úkol převést všechny databázové soubory vybraných firem na SQL server. Budou převedeny pouze databáze, k nimž existuje šablona datové struktury pro MSSQL (mdb soubor obsahující tabulku Struktura s definicí jednotlivých objektů v T-SQL). 
  Pro databáze DataXXXX.mdb, DMajXXXX.mdb, DMzdXXXX.mdb, DOLEXXXX.mdb, DUctXXXX.mdb a Firmy.mdb (Tato databáze je automaticky převedena na SQL server při prvním převodu dat na SQL server nebo při založení jakékoli firmy na SQL serveru) je k dispozici soubor MSSQL70.mdb (MSSQL90.mdb), který je umístěný v adresáři SQL\MSSQL70,  SQL\MSSQL2000 nebo SQL\MSSQL2005 (podle verze použitého SQL serveru) instalačního CD. Pro ostatní databáze (dále jen zákaznické) je nutno vytvořit (nebo si objednat u výrobce systému Vario) vlastní šablony. Název souborů se šablonami zákaznických databází musí odpovídat masce: MSSQL70_zak_*.mdb (MSSQL90_zak_*.mdb), kde * je název databáze, která se bude vytvářet. Např. šablona pro databázi DTSTXXXX.mdb se bude jmenovat MSSQL70_zak_DTST.mdb (případně MSSQL90_zak_DTST.mdb).

Popis jednotlivých kroků:

mezi kroky se pohybujete pomocí tlačítek Další a Zpět

a) Ze seznamu vyberete firmy, jejichž data jsou umístěna na fileserveru.

b) Vyplníte název a verzi SQL serveru, případně vyberete jiné porovnávání databází (Čeština nebo Slovenština). Máte-li ve svém systému knihovnu SQL-DMO, můžete vybrat název SQL serveru ze seznamu. Verzi se pokusí průvodce doplnit sám, pokud ji nedoplní, napíšete ji ručně. Doporučujeme, aby výchozí porovnávání SQL serveru bylo shodné s vybraným porovnáváním databází (V opačném případě se můžete setkat s problémy (collation conflict) při použití uložených procedur využívajících dočasných tabulek v databázi tempdb).

c) Zadáte adresář, ve kterém mají být umístěny SQL databáze (cesta k adresáři musí být zadána z pohledu SQL serveru)

d) Klepnete na Dokončit a zadáte umístění souboru MSSQL70.mdb (MSSQL90.mdb) (již zmíněná šablona s definicí datové struktury pro databáze Varia). Na SQL serveru bude vytvořena struktura všech databází Varia a zákaznických databází, jejichž šablona je umístěna ve stejném adresáři jako šablona MSSQL70.mdb (MSSQL90.mdb). Do těchto databází budou převedena data z existujících mdb databází. Případ, kdy neexistuje zdrojová (mdb) nebo cílová (SQL) databáze, bude ignorován (nedojde k chybě) a převod bude pokračovat bez přerušení. Po převodu bude nutno zkontrolovat, zda tato situace nenastala, a případně ji dořešit pomocí volby 5). Existuje-li již alespoň jedna z právě vytvářených databází na SQL serveru, zobrazí se hlášení s informací o existujících databázích a s dotazem, zda chcete pokračovat a vynechat vytvoření těchto databází. Odpovíte-li Ne, bude převod pokračovat další firmou vybranou v seznamu firem. Odpovíte-li Ano, budou pro danou firmu vytvořeny pouze databáze, které na SQL serveru ještě neexistují a data v již existujících   databázích budou smazána a přepsána daty z mdb souborů (během mazání dojde ve většině případů k chybě referenční integrity, proto raději odpovídejte Ne).

POZOR, pomocí této volby nebudou převedeny databáze, které jsou společné pro všechny firmy (dále jen nečíslované databáze). Jako příklad nečíslované databáze lze uvést databázi Firmy, která je společná pro všechny firmy a ve svém názvu neobsahuje číslo databáze. Pro databázi Firmy však platí výjimka umožňující automatický převod této databáze pomocí volby 1). Tyto databáze lze převést pomocí volby 5), která bude zmíněna dále. Šablony nečíslovaných databází musí obsahovat tabulku Vlastnosti s polem Cislovat_databazi. Hodnota pole musí být 0 (nula). V opačném případě bude databáze považována za číslovanou.


2) Převést stávající data zvolených firem z SQL serveru na file-server (do mdb souborů).

Tato volba převede data vybraných firem z databází na SQL serveru do mdb databází. Podmínkou úspěšného převodu je existence fileserverových šablon databází Data0000.mdb, DMaj0000.mdb, DMzd0000.mdb, DOLE0000.mdb, DUct0000.mdb a v případě zakázkových databází např. DTST0000.mdb. Zde podobně, jako při použití volby 1), nedojde k chybě při neexistenci zdrojové (SQL) nebo cílové (mdb) databáze. Opět bude nutno zkontrolovat, zda taková situace nenastala, a případně ji dořešit pomocí volby 6).


3) Převést databázi Firmy na SQL server.

Tato volba převede sdílenou databázi Firmy.mdb Varia na SQL server. Volba je nepřístupná v případě, že databáze Firmy již na SQL serveru existuje (v tom případě je v souboru vario.ini umístěném v adresáři datového profilu Varia uvedena položka Server=JmenoVasehoSQLServeru). V případě, že se k SQL serveru nepřihlásíte jako člen role sysadmin, upsize se neprovede.

Popis jednotlivých kroků:

mezi kroky se pohybujete pomocí tlačítek Další a Zpět

a) Vyplníte název a verzi SQL serveru, případně vyberete jiné porovnávání databází (Čeština nebo Slovenština). Máte-li ve svém systému knihovnu SQLDMO, můžete vybrat název SQL serveru ze seznamu. Verzi se pokusí průvodce doplnit sám, pokud ji nedoplní, napíšete ji ručně. Doporučujeme, aby výchozí porovnávání SQL serveru bylo shodné s vybraným porovnáváním databází (V opačném případě se můžete setkat s problémy (collation conflict) při použití uložených procedur využívajících dočasných tabulek v databázi tempdb).

c) Zadáte adresář, ve kterém mají být umístěny SQL databáze (cesta k adresáři musí být zadána z pohledu SQL serveru)

d) Klepnete na Dokončit a zadáte umístění souboru MSSQL70.mdb (MSSQL90.mdb) (v bodu 1 zmíněná šablona s definicí datové struktury pro databáze Varia, pozor na použitou verzi MSSQL). Na SQL serveru bude vytvořena struktura databáze Firmy. Do této databáze budou převedena data z existující databáze Firmy.mdb a do souboru vario.ini umístěného v adresáři datového profilu Varia bude přidána (změněna) položka Server= JmenoVasehoSQLServeru. V případě, že na SQL serveru již databáze s názvem Firmy existuje, bude zobrazeno chybové hlášení a databáze převedena nebude.


4) Převést databázi Firmy z SQL serveru na file-server.

Tato volba převede databázi Firmy z SQL serveru do souboru Firmy.mdb. Před převodem bude vytvořen z původního souboru Firmy.mdb záložní soubor FirmYYYYYMMDDHHNNSS.mdb kde YYYYYMMDDHHNNSS je datum a čas, ve kterém k převodu došlo. Všechna data ze souboru Firmy.mdb budou smazána a nahrazena daty z SQL serveru. V případě, že ve složce datového profilu chybí soubor Firmy.mdb, nebude volba pro převod databáze na file-server přístupná.


5) Převést zákaznickou databázi na SQL server.

Tato volba převede libovolnou zákaznickou mdb databázi, pro kterou je zadána šablona (soubor s definicí datové struktury MSSQL70_zak_*.mdb [MSSQL90_zak_*.mdb])), na SQL server.
  V případě, že je databáze "číslovaná", bude proveden převod pro všechny firmy, které mají data na SQL serveru, a pouze pro mdb databáze, jejichž obraz ještě není na SQL serveru vytvořen. Např. databáze DTSTXXXX.mdb budou převedeny pro firmy 1 a 3, jejichž data jsou umístěna na SQL serveru. Pro firmu 2, která nemá data na SQL serveru, zůstane databáze na fileserveru. Pro firmu 4, která má data na SQL serveru, ale zároveň již má na SQL serveru databázi DTST0004, nebude převod proveden a bude se pokračovat v převodu pro další firmu. Po převodu bude zobrazeno hlášení o databázích, které nebyly převedeny.
  V případě, že je databáze "nečíslovaná" (společná pro všechny firmy), bude proveden převod pouze jednou pro jedinou existující mdb databázi.

Popis jednotlivých kroků:

mezi kroky se pohybujete pomocí tlačítek Další a Zpět

a) Vyplníte název a verzi SQL serveru, případně vyberete jiné porovnávání databází (Čeština nebo Slovenština). Máte-li ve svém systému knihovnu SQLDMO, můžete vybrat název SQL serveru ze seznamu. Verzi se pokusí průvodce doplnit sám, pokud ji nedoplní, napíšete ji ručně. Doporučujeme, aby výchozí porovnávání SQL serveru bylo shodné s vybraným porovnáváním databází (V opačném případě se můžete setkat s problémy (collation conflict) při použití uložených procedur využívajících dočasných tabulek v databázi tempdb).

c) Zadáte adresář, ve kterém mají být umístěny SQL databáze (cesta k adresáři musí být zadána z pohledu SQL serveru)

d) Klepnete na Dokončit a zadáte umístění šablony MSSQL70_zak_*.mdb (MSSQL90_zak_*.mdb). Jméno databáze je zjištěno z tabulky Struktura umístěné v šabloně. Obsahuje-li šablona definice pro více databází, budete o výběr jedné z nich.

 

6) Převést libovolnou databázi na Fileserver.

Tato volba převede libovolnou SQL databázi do mdb databáze. V případě "číslované" databáze musí existovat její fileserverová šablona ????0000.mdb. V případě "nečíslované" musí existovat původní fileserverový soubor. V obou případech budou před převodem smazána všechna data z cílových fileserverových databází (nezapomeňte na zálohu).