ASP, databáze a objekt Connection

4. července 2000

V článku „ASP a jak pomocí něj přistupovat k databázím“ jsem vás krátce seznámil s přístupem do databází pomocí ASP. V dnešním článku vás čeká podrobné seznámení s objektem Connection, který zajišťuje spojení do databáze.

Objekt Connection
Objekt Connection představuje připojení k poskytovateli dat a obsahuje informace o poskytovateli dat. Objekt Connection obsahuje spousty vlastností, ale některé z nich jsou zcela závislé na podpoře ze strany příslušného poskytovatele dat.

dim ObjConn
set ObjConn=server.CreateObject(„ADODB.Connection“)

ConnectionString
ConnectionString je řetězcová hodnota, která obsahuje informace použité k vytvoření otevřeného připojení k příslušnému poskytovateli dat. Prvky, které Connection string obsahuje se musí zadávat v přesně definovaném pořadí a oddělené středníkem. Pokud nějaký prvek nezadáte, musíte na jeho místo vložit středník. Tohle ale neplatí v případě, že za vynechaným prvkem již další prvek neuvedete.

Položky v ConnectionString

  • Provider = název poskytovatele dat.
  • Data Source = název zdroje dat (např registrovaný zdroj dat ODBC)
  • User ID = uživatelské jméno, které je používáno pro vytvoření spojení.
  • Password = heslo, které přísluší k uživatelskému jménu.

    ConnectionTimeout
    Vlastnost ConnectionTimeout nastavuje nebo zjišťuje počet sekund po které objekt čeká na odezvu od poskytovatele dat než vyvolá chybu. Standardní hodnota této vlastnosti je 15 sekund.

    objConn.ConnectionTimeout=15

    Při nastavování ConnectionTimeout je třeba brát do úvahy nastavení vlastnosti Server.ScriptTimeout. Pokud totiž ConnectionTimeout bude větší než ScriptTimeout může se snadno stát, že výsledek pokusu o připojení neuvidíte (a to bez ohledu na jeho úspěšnost). Jediné co v tomto případě uvidíte, je vypršení timeoutu scriptu.

    Open
    Pomocí metody Open se otevírá připojení k poskytovateli dat

    objConn.Open ConnectionString, jmeno, heslo

    Jak už jistě víte, jméno a heslo lze zadat v ConnectionString. Některé čtenáře možná napadne, co se stane, pokud se jméno a heslo zadá nejenom v ConnectionString, ale také v metodě Open. Výsledek takového zadání je zcela nedefinovatelný a u některých zdrojů dat může skončit chybou.

    State
    Vlastnost State je vlastnost určená pouze pro čtení a poskytuje informaci o tom, zde je nebo není otevřeno spojení na zdroj dat.

    stavspojeni=objConn.State

    Vlastnost vrací 0 (nulu) v případě, že není spojení otevřené. V případě, že spojení otevřené je tak vrací 1 (jedničku)

    Close
    Chcete-li uzavřít spojení na zdroj dat, použijte k tomu metodu Close objektu Connection. Pokud chcete uvolnit paměť obsazenou konkrétním objektem Connection, musíte proměnnou objektu Connection nastavit na Nothing.

    objConn.close

    Funkce pro usnadnění připojení k databázi
    Pro usnadnění vaší práce s databázemi vám předkládám dvě funkce pro usnadnění práce s otevřením spojení a jeho následným zavřením.

    Dim objConn
    function isConnectDB()
       Dim strConn
       On Error Resume Next
       if isObject(objConn)=False then SET objConn=Server.CreateObject(„ADODB.Connection“)
       if objConn.State<>1 then
          objConn.Open Application(„dsn“),Application(„user“),Application(„heslo“)
          if Err.number <>0 then
             isConnectDB =False
             ERR.CLEAR
          else
             isConnectDB=True
          end if
       else
          isConnectDB=True
       end if
    end function
    sub disconnect()
       objConn.close
       SET objConn=Nothing
    end sub

    Jak jste si jistě v kódu všimli, jsou údaje o vlastnostech připojení uloženy v objektech application. Výhodou tohoto řešení je to, že máte informace o připojení uloženy na jednom místě a při změně poskytovatele dat víte přesně, kde a co musíte změnit.

    Údaje o vlastnostech připojení si uložte do souboru global.asa do metody Application_OnStart. Tím si zajistíte, že informace o připojení do databáze budete mít kdykoliv k dispozici.

    Application(„dsn“)=“Provider=sqloledb;Network=DBMSSOCN;Server=xxx.xxx.xxx.xxx;Database=internet;“
    Application(„user“)“superuser“
    Application(„heslo“)=“veslo“

    Pamatujte si, že v informacích o připojení k databázi jsou uloženy životně důležité informace o vaší databázi. Pokud se k těmto údajům dostane nepovolaná osoba, je již jen krůček ke zneužití informací uložených ve vaší databázi.

    V takovém případě musíte jako oko v hlavě střežit soubor global.asa před jakýmkoliv přístupem nepovolaných osob. Pokud budete postupovat nastavením, že všichni nemají přístup nikam a pak postupně začnete povolovat přístupy, ušetříte si tím spoustu starostí.

    To je pro dnešek vše. A co nás čeká příště? Podíváme se na zoubek RecordSetu.

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

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

  • Štítky: Články

    Mohlo by vás také zajímat

    Nejnovější

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *