--------------------------------------------------------- Vigtigt-fil til Microsoft(R) ActiveX(R) Data Objects version 2.1 --------------------------------------------------------- (c) 1998 Microsoft Corporation. Alle rettigheder forbeholdes. Dette dokument indeholder de seneste oplysninger, der supplerer dokumentationen til Microsoft ADO. -------- INDHOLD -------- 1. PRODUKTBESKRIVELSE 2. NYE FUNKTIONER 2.1 Seek og Index 2.2 Rækkeopdateringer og synkronisering 2.3 Microsoft OLE DB Persistence Provider 2.4 Microsoft Data Shaping Service til OLE DB 2.5 Microsoft OLE DB Remoting Provider 3. TEKNISKE BEMÆRKNINGER 3.1 Sikkerhedsforbedringer 3.2 Restriktiv virkemåde 3.3 Tilpasning af sikkerhedsindstillinger 4. KENDTE FEJL, BEGRÆNSNINGER, RETTELSER OG SENESTE DOKUMENTATIONSBEMÆRKNINGER ---------------------- 1. PRODUKTBESKRIVELSE ---------------------- ActiveX Data Objects (ADO) er en automatiseringsbaseret grænseflade til at få adgang til data. ADO bruger OLE DB-grænsefladen til at få adgang til en lang række datakilder, herunder men ikke begrænset til data leveret via ODBC. Brugerne af RDO og DAO bør hurtigt gøre sig bekendt med programmering til ADO, fordi det overordnede design af ADO kommer fra vores erfaring med at udvikle disse grænseflader. Microsoft Remote Data Service (RDS) er en komponent i ADO, som giver hurtig og effektiv dataforbindelse og dataudgivelsesmiljøet til programmer, der er tilknyttet i Microsoft Internet Explorer. Den er baseret på en distribueret klient-/serverteknologi, der fungerer over HTTP-, HTTPS- (HTTP over Secure Sockets Layer) og DCOM-programprotokoller. Ved at bruge datakompatible ActiveX-objekter giver RDS adgang til dataprogrammering, der ligner Microsoft Visual Basic(R), til Web-udviklere, som har brug for at opbygge distribuerede, datakrævende programmer, der skal bruges på virksomheders intranet og Internettet. --------------- 2. NYE FUNKTIONER --------------- ADO 2.1 tilføjer flere nye funktioner for udviklerne. 2.1 Seek og Index Metoden Seek og egenskaben Index tilføjer hurtig, indeksbaseret placering af rækker i et postsæt. 2.2 Rækkeopdateringer og synkronisering Den nye "row fix-up"-tilstand giver mulighed for brugerdefineret kontrol over rækkeopdateringer og synkronisering af postsæt oprettet med en JOIN-handling. Syv nye dynamiske egenskaber kontrollerer fem eksisterende metoders virkemåde. 2.3 Microsoft OLE DB Persistence Provider Sammen med metoderne Save og Open i Recordset-objektet gemmer og gendanner Microsoft OLE DB Persistence Provider et postsæt i en fil. Med denne version kan et postsæt gemmes i XML-formatet (Extensible Markup Language), som er standardmåden at definere brugerangivne koder for data transporteret via Internettet. 2.4 Microsoft Data Shaping Service for OLE DB Microsoft Data Shaping Service for OLE DB, som understøtter Data Shaping, kan nu: 2.4.1 Omforme et tidligere formet postsæt. For at understøtte denne funktion har postsæt nu en Name-egenskab, der eksisterer, så længe forbindelsen er etableret. 2.4.2 Udføre aggregate-beregninger på en kolonne på ethvert niveau af et omformet postsæt, ikke blot det overordnede niveaus underniveau. Denne funktion bruger fulde kapitelnavne til at danne en sti til det ønskede niveau og den ønskede kolonne. 2.4.3 COMPUTE-kommandoer i parameterform kan have et vilkårligt antal mellemliggende COMPUTE-delsætninger mellem delsætningen PARAMETER og parameterargumentet. 2.5 Microsoft OLE DB Remoting Provider Microsoft OLE DB Remoting Provider bliver en standardserviceprovider og henter nye dynamiske egenskaber til forbedret ydeevne, større brugerkontrol og kompatibilitet bagud med ADO 2.0. ------------------ 3. TEKNISKE BEMÆRKNINGER ------------------ 3.1 Sikkerhedsforbedringer Denne version indeholder sikkerhedsforbedringer til ADO- og RDS-objekter, så nogle af handlingerne begrænses, når Internet Explorer kører i en "sikker" tilstand. 3.1.1. Zoner Du kan angive forskellige sikkerhedsindstillinger til forskellige "zoner" i Internet Explorer 4.0 for at tilpasse ADO/RDS-objekters virkemåde i disse zoner. Følgende fire zoner er defineret i Internet Explorer 4.0: * Internetzone * Lokal intranetzone * Zone med klassificerede steder * Zone med pålidelige steder 3.1.2. Sikkerhedsniveauer For hver af disse zoner kan du angive det sikkerhedsniveau, der skal bruges. Følgende sikkerhedsniveauer er tilgængelige for hver zone: * Høj * Mellemste * Lav * Brugerdefineret Som ved alle andre ActiveX-objekter skal sikkerhedsniveauet indstilles til "Mellemste" eller "Høj" for overhovedet at få ADO/RDS-objekter til at fungere i Internet Explorer 4.0. Brugerdefinerede indstillinger anvendes til at indstille ADO/RDS-objekter til at fungere i sikker eller usikker tilstand. 3.2 Restriktiv virkemåde Som standard medfører usikre handlinger på ADO/RDS-objekter i Internet Explorer 4.0 en brugerprompt, når sider åbnes fra "Lokal pålidelig zone", "Zone med pålidelige steder" og "Internetzone". Usikre handlinger på ADO/RDS-objekter deaktiveres som standard for sider, der indlæses fra "Zone med klassificerede steder". I det følgende beskrives ADO/RDS-virkemåde ved kørsel i disse tilstande: 3.2.1 Sikre objekter Følgende objekter anses for "sikre". Det betyder, at usikre handlinger (beskrevet i afsnit 3.2.3) ikke tillades i et sikkert miljø (f.eks. som standard i Internet Explorer, medmindre brugerdefinerede indstillinger benyttes til at køre i en usikker tilstand) og tillades i et usikkert miljø (f.eks. Visual Basic). a. RDS.DataControl-objekt b. RDS.DataSpace-objekt c. ADO Recordset-objekt 3.2.2 Usikre objekter Følgende objekter anses for "usikre". De kan ikke oprettes direkte eller indirekte (og gives til en bruger) i et sikkert miljø. a. RDSServer.DataFactory-objekt b. ADO Connection-objekt c. ADO Command-objekt 3.2.3 Usikre handlinger på sikre objekter Følgende handlinger anses for usikre på de "sikre" objekter - RDS.DataControl, RDS.DataSpace, ADO Recordset. Disse handlinger tillades ikke i et sikkert miljø, men i et usikkert miljø. a. RDS.DataControl i) Alle tolags- og DCOM-scenarier på objektet RDS.DataControl. Det betyder, at du ikke kan åbne databaseforbindelser på den lokale maskine eller servere, du etablerer forbindelse til med DCOM-protokollen. ii) Alle trelagshandlinger over HTTP er begrænset til den server, siden er hentet fra. Det betyder, at egenskaben Server på objektet RDS.DataControl skal være lig med det værtsnavn (http://server), siden er hentet fra. b. RDS.DataSpace i) Alle tolags-og DCOM-scenarier på objektet RDS.DataSpace. Det betyder, at du ikke kan bruge objektet RDS.DataSpace til at aktivere firmaobjekter på den lokale maskine eller over DCOM-protokollen. ii) Alle trelagsscenarier over HTTP er begrænset til den server, siden blev hentet fra. Det betyder, at den anden parameter i metodekaldet CreateObject på objektet DataSpace skal pege på den samme server, siden er hentet fra. c. ADO Recordset i) Etablerer forbindelse, hvor provider ikke er MS Remote. Så tilslutningsstrengen skal starte med "Provider=MS Remote". Koden "Remote Server" i tilslutningsstrengen skal også være det samme navn som den server, siden er hentet fra. Lokale tolags- og DCOM-tilslutninger tillades ikke. ii) Local Persistence-handlinger, som at gemme et postsæt i det lokale filsystem og åbne et postsæt fra en fil på den lokale maskine. 3.3 Tilpasse sikkerhedsindstillinger ADO/RDS-virkemåde kontrolleres af indstillingen "Initialiser ActiveX-objekter, som ikke er markeret som sikre". Du kan ændre sikkerhedsindstillingerne ved at ændre sikkerhedsniveauet for en bestemt zone. Standardværdierne for indstillingen "Initialiser ActiveX-objekter, som ikke er markeret som sikre" for intranetzonen er som følger: Sikkerhedsniveau = Høj Værdi = "Deaktiver" Sikkerhedsniveau = Mellemste Værdi = "Deaktiver" Sikkerhedsniveau = Lav Værdi = "Spørg" Oplysninger om standardindstillinger i andre sikkerhedszoner finder du i dokumentationen til Internet Explorer. Ved at ændre sikkerhedsniveauet kan du ændre virkemåden for frakoblede ADO Recordset-objekter, der kører i browseren. Hvis du vil aktivere usikre handlinger og ikke vil spørges, hver gang en sådan handling forsøges, skal du udtrykkeligt angive værdien for ovenstående indstilling til "Aktiver". Bemærk også, at hvis du forsøger en usikker handling (f.eks. at gemme et postsæt i en fil i det lokale filsystem) på et ADO Recordset fra RDS.DataControl, skal du angive værdien for ovenstående indstilling til "Aktiver". Indstillingen af "Spørg" virker som "Deaktiver" for sådanne Recordset-objekter (fra RDS.Datacontrol). Du kan tilsidesætte standardindstillingerne ved direkte at justere de brugerdefinerede indstillinger for ovenstående indstilling. Du kan vælge fuldstændig at deaktivere de usikre handlinger (beskrevet herover) eller angive, at en advarsel skal vises, når den pågældende handling forsøges, eller aktivere en sådan handling uden advarsel. Du kan angive forskellige brugerdefinerede indstillinger for forskellige sikkerhedszoner. Følgende fremgangsmåde skal gennemføres for at tilpasse sikkerhedsindstillingerne for en bestemt sikkerhedszone: ADVARSEL! Vær opmærksom på, at du ved at aktivere "Initialiser ActiveX-objekter, som ikke er markeret som sikre" (trin 5 herunder) tillader, at ETHVERT ActiveX-objekt, sikkert eller usikkert, bruges fra Web-sider (hvilket muligvis udsætter brugermaskiner for skadeligt indhold eller skadelig scriptingkode). Det anbefales, at du kun gør dette i "intranetzone" eller "Pålidelig zone" og ikke i "Internet-zone". 1. Vælg Internet-indstillinger i menuen Vis i Internet Explorer 4.0 for at åbne dialogboksen Internet-indstillinger. Vælg fanen Sikkerhed. 2. Vælg den zone, du vil tilpasse indstillingerne for, på rullelisten Zone. 3. Vælg Brugerdefineret for den valgte zone for at aktivere knappen Indstillinger i dialogboksen. 4. Klik på Indstillinger for at åbne dialogboksen Indstillinger for sikkerhed. 5. Hvis du vil aktivere usikre handlinger (beskrevet i afsnit 3.2.3) på ADO/RDS-objekter uden at vise en advarsel, skal du markere "Aktiver" under indstillingen "Initialiser ActiveX-objekter, der ikke er markeret som sikre" i dialogboksen Indstillinger for sikkerhed. Klik på OK. 6. Hvis du vil have vist en advarsel, når en usikker handling (beskrevet i afsnit 3.2.3) forsøges på ADO/RDS-objekter, skal du markere "Spørg" under indstillingen "Initialiser ActiveX-objekter, der ikke er markeret som sikre" i dialogboksen Indstillinger for sikkerhed. Klik på OK. 7. Hvis du helt vil deaktivere usikre handlinger (beskrevet i afsnit 3.2.3) på ADO/RDS-objekter, skal du markere "Deaktiver" under indstillingen "Initialiser ActiveX-objekter, der ikke er markeret som sikre" i dialogboksen Indstillinger for sikkerhed. Klik på OK. 8. Gentag eventuelt denne fremgangsmåde for at tilpasse sikkerhedsindstillingerne for andre sikkerhedszoner. 9. Klik på OK. Nu vil ADO/RDS-objekter opføre sig på den angivne brugerdefinerede måde. Disse indstillinger påvirker ADO/RDS-objekter på følgende måde (som beskrevet i afsnit 3.2.3) i den angivne sikkerhedszone - åbne lokale tolagsforbindelser; arbejde via DCOM; etablere forbindelse til en anden server end den, siden oprindeligt blev hentet fra; gemme og åbne et postsæt i/fra filer på den lokale maskine. Hvis du markerer "Spørg" under de brugerdefinerede indstillinger, vises følgende advarsel, når en usikker handling forsøges på ADO/RDS-objekter: "Denne side forsøger at få adgang til en datakilde i et andet domæne. Vil du tillade det?" Brugeren kan svare "Ja" eller "Nej". Hvis svaret er "Ja", udføres handlingen. Hvis ikke, mislykkes den. -------------------------------------------------- 4. KENDTE FEJL, BEGRÆNSNINGER, RETTELSER OG SENESTE DOKUMENTATIONSBEMÆRKNINGER -------------------------------------------------- 4.1 Klientrepræsentation i RDS understøttes p.t. ikke grundet manglende understøttelse fra operativsystemet. 4.2 Ved oprettelse af "Virtuelle servere" i Internet Information Server 4.0 er følgende to ekstra trin nødvendige for at konfigurere serveren til at arbejde med RDS: A) Vælg "Tillad adgang til eksekverbare filer", når serveren installeres. B) Flyt msadcs.dll til vroot\msadc, hvor vroot er den virtuelle servers hjemmemappe. 4.3 Når RDS bruges på en IIS-server, kan det antal tråde, der oprettes pr. processor, kontrolleres ved at justere registreringsdatabasen på Web-serveren. Antallet af tråde pr. processor kan påvirke ydeevnen i en situation med megen trafik eller lidt trafik med store forespørgselsscenarier. Brugeren bør eksperimentere for at finde frem til de bedste resultater. Den bestemte værdi, der skal justeres, er: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ADCThreads hvor ADCThreads er en brugertilføjet REG_DWORD. Intervallet af gyldige værdier er 1 til 50. Standardværdien er 6. Hvis den værdi, der angives af registreringsnøglen, er større end 50, benyttes den største værdi (50). Det bør ikke være nødvendigt for brugeren at oprette denne værdi i registreringsdatabasen. Den er som standard ikke medtaget i registreringsdatabasen. 4.4 Som standard installeres ADO med en "sikker" RDS Server DataFactory-konfiguration. Sikker tilstand for RDS Server-komponenter betyder, at følgende er sandt: 1. Handler skal angives med DataFactory (dette forlanges af en registreringsnøgleindstilling) 2. Vores standardhandler, msdfmap.handler, er registreret, til stede på listen over sikre handlere og markeret som standardhandler. 3. Filen Msdfmap.ini er installeret i Windows-biblioteket. Du skal konfigurere denne fil i henhold til dine behov, før du bruger RDS i trelagstilstand. Du kan eventuelt konfigurere en ubegrænset DataFactory-installation. DataFactory kan bruges direkte uden den brugerdefinerede handler. Brugerne kan stadig benytte en brugerdefineret handler ved at redigere tilslutningsstrengene, men det er ikke påkrævet. Vi har medtaget registreringsdatabasefilen handsafe.reg for at indstille handlerposterne i registreringsdatabasen til en sikker konfiguration. Hvis du vil køre i sikker tilstand, skal du køre handsafe.reg. Vi har medtaget registreringsdatabasefilen handunsf.reg for at indstille handlerposterne i registreringsdatabasen til en ubegrænset konfiguration. Hvis du vil køre i ubegrænset tilstand, skal du køre handunsf.reg. Yderligere oplysninger om brugen af funktionen Customization Handler i RDS finder du i den tekniske artikel "Using the Customization Handler Feature in RDS 2.0", der kan hentes på http://www.microsoft.com/data/techmat.htm 4.5 Metoden Find søger i et postsæt i den angivne retning fra den aktuelle rækkeposition efter den post, der opfylder de angivne kriterier. Hvis ingen aktuel rækkeposition er angivet, før Find kaldes, opstår der en fejl. 4.6 For at bruge ADO FetchProgress og FetchComplete Events med Visual Basic kræves mindst Visual Basic version 6. 4.7 Følgende handlinger anses for "sikre" at bruge i Data Shaping CALC-udtryk: Abs, Asc, Atn, CBool, CByte, CCur, CDate, CDbl, Chr, ChrB, ChrW, Chr$, ChrB$, CInt, CLng, Cos, CSng, CStr, Cvar, CVDate, CVErr, Date, Date$, DateAdd, DateDiff, DatePart, DateSerial, DateValue, Day, DDB, Error, Error$, Exp, Fix, Format, Format$, FV, Hex, Hex$, Hour, IIF, InStr, Int, IPmt, IRR, IsDate, IsEmpty, IsError, IsNull, IsNumeric, IsObject, LCase, LCase$, Left, LeftB, Left$, LeftB$, Len, Log, LTrim, LTrim$, Mid, Mid$, Minute, MIRR, Month, Now, NPer, NPV, Oct, Oct$, Pmt, PPmt, PV, QBColor, Rate, RGB, Right, RightB, Right$, RightB$, Rnd, RTrim, RTrim$, Second, Sgn, Sin, SLN, Space, Space$, Sqr, Str, Str$, StrComp, StrConv, String, String$, SYD, Tan, Time,Time$, Timer, TimeSerial, TimeValue, Trim, Trim$, TypeName, UCase, UCase$, Val, VarType , Weekday, Year 4.8 ADO 2.1 understøtter ikke vedvarende hierarkiske Recordset-objekter i XML-format. 4.9 Du kan ikke opdatere data i et skrivebeskyttet postsæt ved at gemme dataene i XML og redigere XML-filen. En fejl opstår, når du forsøger at åbne postsættet igen fra XML-filen, hvis XML-dataene er blevet ændret. 4.10 Hvis du bruger adUseClient eller etablerer fjernforbindelse til SQL Server 6.5 Service Pack 4, ignoreres brugen af nøgleordet DISTINCT i forespørgsler i forbindelse med resultatsæt, der kan opdateres. Dette er et problem med SQL Server og bør løses i en fremtidig servicepakke. 4.11 De DataTypeEnum-værdier, der er angivet i emnet Type Property i ActiveX Data Objects Programmer's Reference, indeholder fejl. Følgende enum-værdier er angivet, men findes ikke og kan ikke bruges: adArray, adByRef, adVector Følgende værdier mangler på listen, men findes og kan bruges: adChapter En kapitelværdi på 4 byte, der bruges til at identificere rækker i et underordnet rækkesæt (DBTYPE_HCHAPTER). adDBFileTime En filtidsværdi (DBTYPE_DBFILETIME). adFileTime En 64-bit værdi, der repræsenterer antallet af intervaller på 100 nanosekunder siden 1. januar, 1601 (DBTYPE_FILETIME). adPropVariant En automatiserings-PROPVARIANT (DBTYPE_PROP_VARIANT). adVarNumeric En numerisk værdi (kun Parameter-objekt). 4.12 Listen med gyldige værdier for parameteren Options i metoden Execute i Connection- og Command-objekter indeholder fejl. Følgende ExecuteOptionEnum-værdi er fejlagtigt angivet to gange. Den skal være angivet en gang: adCmdTable Angiver, at ADO skal evaluere CommandText som et tabelnavn og generere en SQL-forespørgsel til at returnere alle rækker fra den tabel, der er navngivet i CommandText. Følgende CommandTypeEnum-værdi mangler på listen, men findes og kan bruges: adCmdFile Angiver, at provideren skal evaluere CommandText som et filnavn. Følgende ExecuteOptionEnum-værdier mangler på listen, men findes og kan bruges: adAsyncFetchNonBlocking Angiver, at hovedtråden aldrig blokerer under hentning. Hvis den anmodede række ikke er hentet, flytter den aktuelle række automatisk til slutningen af filen. adExecuteNoRecords Angiver, at CommandText er en kommando eller gemt procedure, der ikke returnerer rækker (f.eks. en kommando, der kun indsætter data). Hvis der hentes rækker, kasseres de og returneres ikke. Kombineres altid med adCmdText eller adCmdStoredProc. 4.13 Listen over QueryType Enum-værdier for metoden OpenSchema i et Connection-objekt indeholder fejl. Følgende værdier mangler på listen, men findes og kan bruges: Enum Begrænsningskolonner adSchemaDBInfoKeywords ingen adSchemaDBInfoLiterals ingen adSchemaCubes CATALOG_NAME SCHEMA_NAME CUBE_NAME adSchemaDimensions CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_NAME DIMENSION_UNIQUE_NAME adSchemaHierarchies CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_NAME HIERARCHY_UNIQUE_NAME adSchemaLevels CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_NAME LEVEL_UNIQUE_NAME adSchemaMeasures CATALOG_NAME SCHEMA_NAME CUBE_NAME MEASURE_NAME MEASURE_UNIQUE_NAME adSchemaProperties CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME MEMBER_UNIQUE_NAME PROPERTY_TYPE PROPERTY_NAME adSchemaMembers CATALOG_NAME SCHEMA_NAME CUBE_NAME DIMENSION_UNIQUE_NAME HIERARCHY_UNIQUE_NAME LEVEL_UNIQUE_NAME LEVEL_NUMBER MEMBER_NAME MEMBER_UNIQUE_NAME MEMBER_CAPTION MEMBER_TYPE Træoperator (se herunder) Bemærk, at de sidste syv Enum-værdier (adSchemaCubes til adSchemaMembers) bør bruges med flerdimensionale dataprovidere. Yderligere oplysninger, herunder definitionen af træoperatorbegrænsningen for adSchemaMembers, finder du i OLE DB for OLAP Programmer's Reference. 4.14 AffectEnum-værdierne angivet i metodeemnet CancelBatch i ActiveX Data Objects Programmer's Reference indeholder en fejl. Følgende værdier mangler på listen, men findes og kan bruges: adAffectAllChapters Annullerer ventende ændringer for alle kapitler. 4.15 Værdien adModeShareDenyNone ConnectModeEnum er ukorrekt beskrevet i egenskabsemnet Mode. Den bør angives som herunder: adModeShareDenyNone Tillader andre at åbne forbindelse med alle tilladelser. Hverken læse- eller skriveadgang kan nægtes andre. 4.16 Egenskaben Index returnerede tidligere en fejl, hvis der ikke var indstillet et indeks på Recordset-objektet. Fra ADO 2.1 i MDAC 2.1 Service Pack 1 returneres en tom streng, og egenskaben udføres korrekt.