ODBC nabízí jednotný přístup k datům. Klient, ať už je to ASP stránka, PHP skript nebo Win32 aplikace, přistupuje k datům pořád stejným způsobem, bez ohledu na to, zda je databázový server MS SQL nebo ne. Z toho plynou jisté výhody.

Nativní a ODBC rozhraní

Nativní rozhraní je ovladač síťového rozhraní specifický pro daný databázový server. Nativní připojení k MS SQL se většinou realizuje pomocí komponenty ActiveX Data Objects (ADO), což je sada součástí umožňujících přístup k datům přes poskytovatele OLE DB. Existuje také univerzální rozhraní ODBC (Open Database Connectivity), se kterým by se dle norem mělo pracovat stejně pro libovolný SQL server i pro libovolnou ODBC-schopnou aplikaci. Dřívější verze ODBC tvořily jen jakýsi mezistupeň mezi aplikací a nativními ovladači databázového serveru. V současnosti takovéto ztráty výkonnosti nehrozí, neboť i ODBC přistupuje přímo. Je to prostě jen jiný ovladač síťového rozhraní.

ODBC Data Source Administrator

ODBC Data Source Administrator (česky Správce zdrojů dat ODBC) je utilita, součást operačních systémů Windows (98 a vyšší, NT 4 a vyšší), pomocí které se realizují potřebná nastavení. Pro její spuštění zvolte Ovládací panely | Nástroje pro správu | Datové zdroje (ODBC):

MS SQL Server - ODBC - ODBC Data Source Administrator
ODBC Data Source Administrator

DSN = Data Source Name

DSN je označení položky, která představuje připojení k databázi. Existují Uživatelské DSN (anglicky User DSN) a Systémové DSN (anglicky System DSN). K uživatelským má přístup jen přihlášený uživatel, který je nastavil a v rámci lokálního počítače. Zdroje dat tedy budete registrovat jako systémové, které jsou k dispozici všem uživatelům včetně služeb technologie NT.

Vytvoření nového zdroje dat

V záložce Systémové DSN stiskněte Přidat. V dialogu s nabídkou ovladačů zvolte pochopitelně SQL Server:

MS SQL Server - ODBC - Základní údaje nového připojení
Základní údaje nového připojení

Otevře se průvodce. Na první obrazovce zadejte základní údaje nového připojení:

MS SQL Server - ODBC - Konfigurace přihlašování
Konfigurace přihlašování

Zvolte způsob autorizace a zaškrtněte automatickou konfiguraci připojení. Průvodce se přihlásí pomocí zadaného jména a hesla. Na serveru pak zjistí pro nové DSN všechny parametry komunikace a nastaví je za vás.

V následujícím dialogu nastavte název databáze, které se bude DSN týkat. Některé parametry jsou již přednastaveny, jiné nelze dokonce ani měnit. To vše je práce automatické konfigurace připojení. Nakonec proveďte ještě test zdroje dat a vše je nastaveno pro připojování.

ODBC pro MS SQL a stránky ASP

Stránky ASP pracují s MS SQL přes nativní nebo přes ODBC rozhraní, rozdíl v syntaxi je minimální.

<%
Set sqlspojeni = Server.CreateObject(„ADODB.Connection“) ‚vytvoření objektu pro spojení s datovým zdrojem
sqlspojeni.Open „DSN=interval“,“redaktor“,“heslo_redaktora“ ‚vytvoření spojení s datovým zdrojem
Set sqlvysledek = Server.CreateObject(„ADODB.Recordset“) ‚vytvoření objektu pro výsledky SQL příkazů
sqlvysledek.open „SELECT clanek FROM clanky“, sqlspojeni ‚vykonáni SQL příkazu
sqlpocet = sqlvysledek.RecordCount ‚vrací počet záznamů výsledku
Response.write „Počet záznamů:“
Response.write sqlpocet
Do Unit sqlvysledek.EOF ‚nachází se na posledním záznamu ve výsledku
  Response.write sqlvysledek.fields(„clanek“) ‚výpis záznamu výsledku
  sqlvysledek.MoveNext ‚přechod na další záznam ve výsledku
Loop
sqlvysledek.close ‚uvolnění výsledku SQL příkazu
Set sqlvysledek = Nothing ‚zrušení objektu pro výsledky SQL příkazů
sqlspojeni.close ‚uzavření spojení s datovým zdrojem
Set sqlspojeni = Nothing ‚zrušení objektu pro spojení s datovým zdrojem
%>

ODBC pro MS SQL a skripty PHP

Krátký příklad ukazuje nejpoužívanější příkazy a programové struktury při práci s ODBC ovladačem ve skriptu PHP.

<?
$odbc_connection = ODBC_Connect(„interval“,“redaktor“,“heslo_redaktora“); // vytvoření spojení s datovým zdrojem
$odbc_record_set = ODBC_Exec($odbc_connection, „SELECT clanek FROM clanky“); // vykonáni SQL příkazu
$odbc_record_count = ODBC_Num_Rows($odbc_record_set); // vrací počet záznamů výsledku
echo „Počet záznamů:“;
echo $odbc_record_count;
while(ODBC_Fetch_Row($odbc_record_set)): // načtení jednoho záznamu výsledku
  echo ODBC_Result($odbc_record_set, „clanek“); // získání jedné položky ze aktuálního záznamu výsledku
endwhile;
ODBC_Free_Result($odbc_record_set); // uvolnění výsledku z paměti
ODBC_Close($odbc_connection); // uzavření spojení s datovým zdrojem
?>

Bezproblémové změny

Kdykoli se rozhodnete změnit databázový server, nemusíte v případě Microsoft Active Server Pages zdrojové kódy webové aplikace vlastně ani měnit. V případě PHP skriptů, které používají nativní ovladače by to bylo podstatně horší. Pokud však přejdete i v PHP na ODBC, změny jsou také bezproblémové.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět