TL   TR
 
Till startsida för Björns studiewebb ASP och databaser

Innehåll

Högerpil ADO

Högerpil Hämta från tabell
Högerpil Infoga i tabell
Högerpil Uppdatera i tabell
Högerpil Radera från tabell

Högerpil Frågor med 
   parametrar

Vänsterpil Tillbaka till ASP
Vänsterpil Till startsida för studiewebb

[ UNDER UPPBYGGNAD ]

Denna sida innehåller en beskrivning av hur man använder databaser med Microsofts ActiveX Data Objects (ADO) i ASP-sidor. Först beskrivs vad ADO är och fungerar, sen behandlas hur man hanterar data i databaser (hämtar, infogar, uppdaterar och raderar data) och sist hur man skickar parametrar till (lagrade) frågor och stored procedures (SP).

För att få mest ut av beskrivningen bör du ha en grundläggande förståelse för databaser och SQL. I exempel kommer MS Access användas som databas då det är den mest spridda databashanterare hos privatpersoner.


ActiveX Data Objects (ADO)

Nedan beskrivs var ADO kommer från samt vilka som är de mest frekvent använda objekten i ADO. Här behandlas även den grundläggande funktionalitet hos ADO:s objekt.

Bakgrund

Microsoft (MS) ADO är ersättaren till de äldre teknologierna Data Access Objects (DAO) och Remote Data Objects (RDO). DAO var begränsat till att endast kunna hantera lokala databaser (via t.ex. MS Jet Engine - databasmotorn för MS Access) medan RDO var tänkr för åtkomst av avlägsna (eng. remote) databaser (via t.ex. ODBC). RDO levererades endast med MS Visual Basic 5 Enterprise Edition. ADO klarar av både lokala och avlägsna databaser samt fler typer av datakällor (begreppet datakällor förklaras nedan).

Tanken med ADO är att skapa en enhetlig modell för åtkomst av datakällor. Begreppet datakällor används för att visa att data kan vara lagrat i annat än bara databaser. T.ex. kan e-post, katalogtjänster (som Novells NDS och Microsofts AD), Office-dokument, webbsidor, m.m. även innehålla data som kan vara intressant att behandla i ett informationssystem.

ADO levereras med alla versioner av MS Visual Basic/Studio 6, i service pack för Windows NT/2000 samt som en separat produkt kallad MS Data Access Components (MDAC). Senaste versionen av MDAC (och mer information om MDAC och ADO) kan laddas ner från (finns på) Microsofts hemsidor på adressen http://www.microsoft.com/data/.

Objekten i ADO

ADO består av ett antal objekt, varav några är mer frekvent använda än andra. På denna hemsida kommer jag att beskriva hur man använder de tre mest användbara objekten: Connection, Recordset och Command.

Objektet Connection

Connection-objektet ska motsvara förbindelsen till datakällan.

Det finns även möjlighet att köra en fråga som returnerar resultatet (posterna) i ett Recordset-objekt.

Objektet Recordset

Recordset-objektet ska motsvara posterna i en tabell eller resulterande poster från en fråga mot en eller flera tabeller.

Objektet Command

Command-objektet används för att köra frågor mot en datakälla samt för att exekvera lagrade frågor och stored procedures (SP). Detta objekt används till sammans med objektet Parameter om man ska skicka parametrar till en lagrad fråga eller SP.

Det finns även möjlighet att köra en fråga som returnerar resultatet (posterna) i ett Recordset-objekt. Skillnaden mot Connection-objektets metod är att man kan skicka parametrar till fråga/SP.

Generellt om databasprogrammering med ADO

Med ADO så finns det flera olika sätt att skriva koden. Mest specifikt är dock att man kan

  • ange alla egenskaper, för förbindelse (till databas) eller för tabell/fråga, innan man öppnar/kör den.
  • eller skicka alla egenskaper som parametrar till metoderna som öppnar/kör förbindelsen, tabellen eller fråga.

Beskrivningarna på denna sida utgår främst ifrån det senare alternativet.

Beskrivningarna nedan om hur man hämtar, infogar, uppdaterar och raderar poster i datakällor med objekten Connection (m.h.a. SQL) och Recordset.


| Till början på sida |


Hämta från tabell

Här kommer en beskrivning om hur man hämtar poster från en tabell och skriver ut på en webbsida. Exemplen visar endast ASP-koden för att spara plats, men koden placeras lämpligen i webbsidans kropp (d.v.s. i BODY-taggen).

Öppna databas

En (förbindelse till) databas kan öppnas genom att

  • deklarera variabler (här även för andra objekt)
  • skapa en ConnectString (se ovan)
  • skapa ett Connection-objekt
  • anropa metoden Open() i Connection-objektet och skicka ConnectString som parameter till metoden.

 

Dim strConn, adoConn, strSQL, adoRS

strConn = "..."   ' se ovan för exempel

Set adoConn = Server.CreateObject("ADODB.Connection")
adoConn.Open strConn

Öppna tabell eller köra fråga

För att öppna en tabell

Skriva ut posterna

 

Stänga tabell och databas

ASP, komponenter och databaser

Om vi använder egenutvecklade komponenter för att hämta data från en databas så returnerar lämpligen metoderna i komponenten objekt i form av Recordset-objekt. Därmed behöver vi inte i ASP öppna databasen och tabellen, utan här endast skriva ut posterna och stänga tabellen.


| Till början på sida |


Infoga i tabell

Här kommer en beskrivning i hur man infogar en post i en tabell.


| Till början på sida |


Uppdatera i tabell

Här kommer en beskrivning om hur man uppdaterar poster i en tabell.


| Till början på sida |


Radera från tabell

Här kommer en beskrivning om hur man raderar poster i en tabell.


| Till början på sida |


Frågor med parametrar

Här kommer en beskrivning om hur man skickar parametrar till (lagrade) frågor (i t.ex. MS Access) och stored procedures (SP).

För att skicka parametrar till frågor använder vi objekten Command och Parameter.


| Till början på sida | Tillbaka till ASP |


Skapad av: Björn Persson. Uppdaterad: 2005-05-01.

 
BL   BR