Lars Sørensen wrote:
> Hej :)
> Jeg vil gerne oprette forbindelse gennem et connection-objekt,
> som inkluderes i det pågældende asp-ark, men får fejlen "404 -
> File or directory not found" når jeg skal benytter funktionen på
> siden.
> Jeg har i bogen "Tips og Tricks til ASP & SQL" fundet følgende
> eksempel på en connection-objekt, hvor jeg har tilpasset stigen,
> så jeg ved den er rigtig:
>
> <% ' include file
> dim strConnect
> strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
> Server.MapPath("../db/afstemning.mdb") & ";" & _
> "User ID=;Password="
> %>
> <!-- METADATA TYPE="typelib"
> FILE="C:\Program Files\Common Files\System\ado\msado15.dll"
> -->
>
> Spørgsmål:
> 1. User ID og Password: Kan man undlade User ID og Password, da
> denne forbindelse skal bruger i forbindelse med et login?
Hvis databasen ikke er beskyttet af brugernavn og adgangskode, skal
det ikke bruges.
> 2. Msado15.dll: Tilsidst står fil-stigen til en msado15.dll. Er
> den nødvendig og hvad gør den?
Nej.
Det man gør, når man skriver ...METADATA TYPE="typelib....
er, at importerer et bibliotek med typer og dermed fortæller webserveren,
hvor den skal kigge efter typer, den ikke lige umiddelbart selv kan finde.
Kigger man lidt nærmere på msado15.dll, kan man se den indeholder
en masse klasser, interfaces,enumerationer m.m., der har relation til
ADODB, d.v.s. database-"ting".
Eller sagt på en anden måde, den er en slags værktøjskasse med ting,
du kan bruge til at tilgå en database.
Nu er der bare det, at webserveren sådan set allerede "ved",
at at der er en sådan ting som en database-forbindelse,
så det virker lidt redundant at fortælle den det igen.
Prøv følgende i et asp-dokument:
<%
dim Connection
Set Connection = Server.CreateObject("ADODB.connection")
Response.Write Connection.Version
%>
På min PC, udskriver den 2.8, hvilket vil sige, at serveren helt fint selv
ved, hvor den skal "lede" efter "ADODB.connection"-typen.
>Hvis jeg fjerner den får jeg
> fejlen "500 - Internal server error" lige så snart jeg åbner min
> side?
Først og fremmest skal du have sat i browser op til at den viser,
hvilke fejl der laves på serveren. Hvis du bruger IE skal du
i fanebladet "Indstillinger->Internet Indstillinger->(faneblad)Advanceret"
fjerne flue-benet ved "Show Friendly HTTP-Error Messages"
(Jeg sidder med den engelske version, så navnene passer måske ikke helt)
Vi ved, at når vi skriver ...METADATA TYPE="typelib...
fortæller vi webserveren, hvor den skal lede efter typer,
den ikke selv kan finde og du fortæller, at når du fjerner
....METADATA TYPE="typelib..., "brokker" webserveren sig.
Det lyder for mig, som om at der bruges en specifik type, i
det bibliotek, i din kode.
Præcis hvad det er, er jo så et godt spørgsmål, der kræver, du
kommer med lidt mere kode.
>
> Er der en der kan hjælpe mig med at besvare ovenstående to
> spørgsmål, og med at tilpasse connection-objektet , så det
> virker?
'Deklarerer variabel
Dim Connection
' Instantierer et objekt. af typen ADODB.connection
Set Connection = Server.CreateObject("ADODB.connection")
'Fortæller, hvilken driver der skal bruges
Connection.Provider = "Microsoft.Jet.OLEDB.4.0"
Connection.Open Server.MapPath("../db/afstemning.mdb")
Du kan iøvrigt læse mere om
ADODB her:
http://www.w3schools.com/ado/default.asp
--
Ulige skal behandles ulige, for at være lige.