ActiveX -dataobjekter - ActiveX Data Objects

I computing , Microsoft 's ActiveX Data Objects ( ADO ) omfatter et sæt af Component Object Model (COM) objekter for at få adgang datakilder. Det er en del af MDAC (Microsoft Data Access Components) og giver et mellemware -lag mellem programmeringssprog og OLE DB (et middel til at få adgang til datalagre, uanset om det er databaser eller ej, på en ensartet måde). ADO giver en udvikler mulighed for at skrive programmer, der har adgang til data uden at vide, hvordan databasen implementeres; udviklere skal kun være opmærksomme på databasen til forbindelse. Ingen viden omSQL er påkrævet for at få adgang til en database ved brug af ADO, selvom man kan bruge ADO til at udføre SQL -kommandoer direkte (med den ulempe at indføre en afhængighed af den anvendte type database).

Microsoft introducerede ADO i oktober 1996 og placerede softwaren som en efterfølger til Microsofts tidligere objektlag til adgang til datakilder, herunder RDO (Remote Data Objects) og DAO (Data Access Objects).

ADO består af fire samlinger og tolv objekter.

ADO -samlinger

Felter
Denne samling indeholder et sæt feltobjekter. Samlingen kan bruges i enten et Recordset -objekt eller i et Record -objekt. I et Recordset -objekt svarer hvert af de Field -objekter, der udgør Fields -samlingen, til en kolonne i det Record -set -objekt. I et postobjekt kan et felt være en absolut eller relativ URL, der peger ind i et træstruktureret navnerum (bruges til semi-strukturerede dataudbydere som Microsoft OLE DB Provider for Internet Publishing) eller som en reference til standard Stream-objektet, der er tilknyttet med det Record -objekt.
Ejendomme
Et objekt kan have mere end et egenskabsobjekt, som er indeholdt i objektets egenskabssamling.
Parametre
Et kommandoobjekt kan have flere parameterkommandoer til at ændre sin foruddefinerede adfærd, og hvert af parameterobjekterne er indeholdt i kommandoobjektets parametersamling
Fejl
Alle udbyderoprettede fejl sendes til en samling fejlobjekter, mens selve fejlsamlingen er indeholdt i et forbindelsesobjekt. Når en ADO -handling opretter en fejl, ryddes samlingen, og der oprettes en ny gruppe fejlobjekter i samlingen.

ADO -objekter

Forbindelse
Forbindelsesobjektet er ADO's forbindelse til et datalager via OLE DB. Forbindelsesobjektet gemmer oplysninger om sessionen og giver metoder til at oprette forbindelse til datalagret. Da nogle datalagre har forskellige metoder til at etablere en forbindelse, understøttes nogle metoder muligvis ikke i forbindelsesobjektet for en bestemt OLE DB -udbyder. Et forbindelsesobjekt opretter forbindelse til datalageret ved hjælp af sin 'Open' -metode med en forbindelsesstreng, der angiver forbindelsen som en liste over nøgleværdipar (f.eks .: "Provider = 'SQLOLEDB'; Datakilde = 'TheSqlServer'; Initial Catalog = 'Northwind'; Integreret sikkerhed = 'SSPI'; "). Starten af ​​denne forbindelsesstreng skal identificere den type datalagringsforbindelse, som forbindelsesobjektet kræver:
  • en OLE DB -udbyder (f.eks. SQLOLEDB), der bruger syntaksen "provider =";
  • et filnavn ved hjælp af syntaksen "filnavn =";
  • en fjernudbyder og server (se RDS) ved hjælp af syntaksen "Remote provider =" og "Remote server ="; eller
  • en absolut URL ved hjælp af syntaksen "URL ="
Kommando
Efter at forbindelsesobjektet har etableret en session til datakilden, sendes instruktioner til dataudbyderen via kommandoobjektet. Kommandoobjektet kan sende SQL -forespørgsler direkte til udbyderen ved hjælp af egenskaben CommandText, sende en parameteriseret forespørgsel eller lagret procedure ved hjælp af et parameterobjekt eller en parametersamling eller køre en forespørgsel og returnere resultaterne til et datasætobjekt via Udfør metode. Der er flere andre metoder, der kan bruges i kommandoobjektet vedrørende andre objekter, f.eks. Stream-, RecordSet- eller Connection -objekter.
Rekordsæt
Et rekordsæt er en gruppe poster og kan enten komme fra en basistabel eller som et resultat af en forespørgsel til tabellen. RecordSet -objektet indeholder en Fields -samling og en Properties -samling. Fields -samlingen er et sæt Field -objekter, som er de tilsvarende kolonner i tabellen. Egenskabssamlingen er et sæt egenskabsobjekter, der definerer en bestemt funktionalitet for en OLE DB -udbyder. RecordSet har mange metoder og egenskaber til undersøgelse af de data, der findes i det. Registreringer kan opdateres i rekordsættet ved at ændre værdierne i posten og derefter benytte metoden Update eller UpdateBatch.
Umiddelbar
Rekordsættet er låst ved hjælp af adLockOptimistic eller adLockPessimistic -låsen. Dataene opdateres ved datakilden, efter at posten er ændret, og opdateringsmetoden kaldes.
Parti
Rekordsættet er låst ved hjælp af adLockBatchOptimistic, og hver gang opdatering kaldes, opdateres dataene i en midlertidig buffer. Endelig, når UpdateBatch kaldes, opdateres dataene fuldstændigt tilbage ved datakilden. Dette har den fordel, at det hele sker i hukommelsen, og hvis der opstår et problem, kaldes UpdateCancel, og opdateringerne sendes ikke til datakilden.
Transaktion
Hvis OLE DB -udbyderen tillader det, kan transaktioner bruges. For at starte transaktionen påkalder programmøren BeginTrans -metoden og foretager de nødvendige opdateringer. Når de alle er færdige, påkalder programmereren CommitTrans -metoden. RollbackTrans kan påberåbes for at annullere ændringer foretaget i transaktionen og tilbageføre databasen til staten, før transaktionen begyndte.
Optage
Dette objekt repræsenterer én post i databasen og indeholder en feltsamling. Et RecordSet består af en samling af Record -objekter.
Strøm
En strøm, der hovedsageligt bruges i et RecordSet -objekt, er et middel til at læse og skrive en strøm af bytes. Det bruges mest til at gemme et rekordsæt i et XML -format, til at sende kommandoer til en OLE DB -udbyder som et alternativ til CommandText -objektet og til at indeholde indholdet i en binær eller tekstfil.
Parameter
En parameter er et middel til at ændre adfærden for et fælles stykke funktionalitet, f.eks. Kan en lagret procedure få forskellige parametre sendt til den afhængigt af hvad der skal gøres; disse kaldes parameteriserede kommandoer.
Mark
Hvert Record -objekt indeholder mange felter, og et RecordSet -objekt har også et tilsvarende Field -objekt. RecordSet -objektets Field -objekt svarer til en kolonne i databasetabellen, som det refererer til.
Ejendom
Dette objekt er specifikt for OLE DB -udbyderen og definerer en evne, som udbyderen har implementeret. Et ejendomsobjekt kan enten være en indbygget ejendom-det er en veldefineret ejendom implementeret af ADO allerede og kan derfor ikke ændres-eller kan være en dynamisk egenskab-defineret af den underliggende dataleverandør og kan ændres
Fejl
Når der opstår en OLE DB -udbyderfejl under brug af ADO, oprettes et fejlobjekt i fejlsamlingen. Andre fejl går dog ikke ind i et fejlobjekt. F.eks. Gemmes eventuelle fejl, der opstår ved manipulation af data i et RecordSet- eller Field -objekt, i en Status -egenskab.

Grundlæggende brug

Nogle grundlæggende trin er nødvendige for at få adgang til og manipulere data ved hjælp af ADO:

  1. Opret et forbindelsesobjekt for at oprette forbindelse til databasen.
  2. Opret et rekordsætobjekt for at modtage data i.
  3. Åbn forbindelsen
  4. Fyld rekordsættet ved at åbne det og sende det ønskede tabelnavn eller SQL -sætning som en parameter til at åbne funktionen.
  5. Udfør al den ønskede søgning/behandling på de hentede data.
  6. Foretag de ændringer, du har foretaget i dataene (hvis nogen) ved hjælp af opdaterings- eller UpdateBatch -metoder.
  7. Luk rekordsættet
  8. Luk forbindelsen

ASP eksempel

Her er et ASP- eksempel, der bruger ADO til at vælge feltet "Navn", fra en tabel kaldet "Telefonbog", hvor et "Telefonnummer" var lig med "555-5555".

dim myconnection, myrecordset, name
set myconnection = server.createobject("ADODB.Connection")
set myrecordset = server.createobject("ADODB.Recordset")

myconnection.open mydatasource
myrecordset.open "Phonebook", myconnection 
myrecordset.find "PhoneNumber = '555-5555'"
name = myrecordset.fields.item("Name")
myrecordset.close

set myrecordset = nothing
set myconnection = nothing

Dette svarer til følgende ASP -kode, der bruger almindelig SQL i stedet for funktionaliteten af ​​Recordset -objektet:

dim myconnection, myrecordset, name
set myconnection = server.createobject("ADODB.connection")
myconnection.open mydatasource
set myrecordset = myconnection.execute("SELECT Name FROM Phonebook WHERE PhoneNumber = '555-5555'")
name = myrecordset(0)

Software support

ADO understøttes i ethvert udviklingssprog, der understøtter binding til binære COM -grænseflader. Disse sprog omfatter ASP, Delphi , PowerBuilder og Visual Basic for Applications (VBA). ADO -understøttelse er nu tilføjet til dBase Plus 8 (med ADO)

Eftermæle

ADO.NET har erstattet ADO på samme måde som C#/. NET erstattet C/Win32 som den primære tilstand til målretning af Windows -programudvikling. ADO.NET følger det samme designmønster som ADO, hvilket gør det muligt for en ADO -udvikler en let vej frem, når han går til .NET -rammerne.

Se også

Referencer

eksterne links