/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Kan bare ikke få Databaseforbindelsen til ~
Fra : Dennis Møller


Dato : 22-07-03 20:20

Jeg har været igennem hele ASP-tutorialen nu og har løbende lavet
små opgaver til mig selv for at bevise jeg nu også kunne det jeg
havde lært. Det har foregået på en og samme maskine, dvs.
serveren var også klient. Jeg har selvfølgelig installeret IIS
(Internet Information Services) til dette formål. Alt har virket
upåklageligt, lige indtil jeg kom til emnet databaser.
Opgaven jeg stilte mig selv virkede ikke, så jeg tænkte jeg havde
skrevet en lille åndssvag tyrkfejl og kopierede derfor eksemplet
fra tutorialen for at få bekræftet at det altså KAN virke. Men
nej:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver]Der opstod en generel
fejl. Registreringsnøglen Temporary (volatile) Jet DSN for
process 0x6b4 Thread 0x8d8 DBC 0x11e2614 Jet kan ikke åbnes.
/test/Default.asp, line 12



Og her er den omtalte "Default.asp":

<html>
<title>Hente data fra database</title>
<head>
</head>
<body>
<ul>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/tutorial.mdb")
Conn.Open DSN

strSQL = "Select * From personer Order by Fornavn Desc"
Set rs = Conn.Execute(strSQL)

Do
' Personens navn
strNavn = rs("Fornavn") & " " & rs("Efternavn")

' lav et link til person.asp med Id-værdien i URL
strLink = "<a href='person.asp?id=" & rs("Id") & "'>" &
strNavn & "</a>"

' Liste med links
Response.Write "<li>" & strLink & "</li>"

rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>
</ul>
</body>
</html>


Som det kan læses i fejlmeddelelsen er det linje 12 det er galt
med, linjen indeholder følgende:
Conn.Open DSN

Her kan der jo ikke være tale om mange fejl! Så hvad i alverden
er der i vejen? Det må være noget med pc'ens opsætning... eller
hvad?

På forhånd tak - Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Falcon (22-07-2003)
Kommentar
Fra : Falcon


Dato : 22-07-03 21:11

Hejsa

Fejlmeldingen tyder på, at databasen ikke kan findes.

>DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/tutorial.mdb")

Du skal angive, hvor databasen befinder sig

Her er nogle eksempler
DSN = DSN & "DBQ=" & Server.MapPath("c:/tutorial.mdb")
DSN = DSN & "DBQ=" & Server.MapPath("../tutorial.mdb")
DSN = DSN & "DBQ=" & Server.MapPath("../..:/tutorial.mdb")
DSN = DSN & "DBQ=" & Server.MapPath("/database/tutorial.mdb")
DSN = DSN & "DBQ=" & Server.MapPath("../database/tutorial.mdb")
DSN = DSN & "DBQ=" & Server.MapPath("../../database/tutorial.mdb")



Dennis Møller (22-07-2003)
Kommentar
Fra : Dennis Møller


Dato : 22-07-03 23:20

Falcon wrote in dk.edb.internet.webdesign.serverside.asp:
> Hejsa
>
> Fejlmeldingen tyder på, at databasen ikke kan findes.
>
> >DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/tutorial.mdb")
>
> Du skal angive, hvor databasen befinder sig
>
> Her er nogle eksempler
> DSN = DSN & "DBQ=" & Server.MapPath("c:/tutorial.mdb")
> DSN = DSN & "DBQ=" & Server.MapPath("../tutorial.mdb")
> DSN = DSN & "DBQ=" & Server.MapPath("../..:/tutorial.mdb")
> DSN = DSN & "DBQ=" & Server.MapPath("/database/tutorial.mdb")
> DSN = DSN & "DBQ=" & Server.MapPath("../database/tutorial.mdb")
> DSN = DSN & "DBQ=" & Server.MapPath("../../database/tutorial.mdb")

Tusinde tak! Jeg havde tjekket det 1.000 gange at jeg havde skrevet
rigtigt. Det havde jeg skam også - men jeg kom i tanke om at man også
nogen gange kan finde på at angive roden med et punktum, altså:
/cgi-bin/tutorial.mdb
Selvom det ingen forskel gør, når man bruger "Server.Mappath", hvis
det intet med databaser har at gøre!
Jeg tilføjede altså blot et punktum så der i stedet for;
DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/tutorial.mdb")
stod;
DSN = DSN & "DBQ=" & Server.MapPath("./cgi-bin/tutorial.mdb")

Selvom du ikke 100% svarede på mit spørgsmål var det nok til at redde
mig fra at smadre skærmen... :D Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (22-07-2003)
Kommentar
Fra : Jørn Andersen


Dato : 22-07-03 23:48

On Tue, 22 Jul 2003 22:19:50 +0000 (UTC), Dennis Møller
<djm@dennermanner.dk> wrote:

>Tusinde tak! Jeg havde tjekket det 1.000 gange at jeg havde skrevet
>rigtigt. Det havde jeg skam også - men jeg kom i tanke om at man også
>nogen gange kan finde på at angive roden med et punktum, altså:
>/cgi-bin/tutorial.mdb
>Selvom det ingen forskel gør, når man bruger "Server.Mappath", hvis
>det intet med databaser har at gøre!
>Jeg tilføjede altså blot et punktum så der i stedet for;
>DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/tutorial.mdb")
>stod;
>DSN = DSN & "DBQ=" & Server.MapPath("./cgi-bin/tutorial.mdb")

Punktum betyder ikke roden, men "det aktuelle directory".
Dit problem er (var) nok, at roden ikke er det, du tror det er.

Roden er normalt wwwroot.
Hvis du fx har flere domains, vil det se således ud:
wwwroot/domain1/
wwwroot/domain1/dir11
wwwroot/domain1/dir12
etc.
wwwroot/domain2/
wwwroot/domain2/dir21
wwwroot/domain2/dir22
etc.

Normalt vil du tænke på roden som:
wwwroot/domain1/
eller:
wwwroot/domain2/
- mens det i virkeligheden er:
wwwroot/


--
Jørn Andersen,
Brønshøj

Dennis Møller (23-07-2003)
Kommentar
Fra : Dennis Møller


Dato : 23-07-03 00:01

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> Punktum betyder ikke roden, men "det aktuelle directory".
> Dit problem er (var) nok, at roden ikke er det, du tror det er.
>
> Roden er normalt wwwroot.
> Hvis du fx har flere domains, vil det se således ud:
> wwwroot/domain1/
> wwwroot/domain1/dir11
> wwwroot/domain1/dir12
> etc.
> wwwroot/domain2/
> wwwroot/domain2/dir21
> wwwroot/domain2/dir22
> etc.
>
> Normalt vil du tænke på roden som:
> wwwroot/domain1/
> eller:
> wwwroot/domain2/
> - mens det i virkeligheden er:
> wwwroot/

Undskyld - du havde faktisk ret!
Jeg vidste godt . ikke betyder roden, men den aktuelle mappe/placering,
men jeg tænkte selvfølgelig ikke over det.
Og i dette tilfælde var det;
wwwroot/test/cgi-bin/tutorial.mdb
så du havde gennemskuet problemet!

Jeg takker og har allerede forudset at jeg vender frygtelig tilbage til
dette forum! :D Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (23-07-2003)
Kommentar
Fra : Jørn Andersen


Dato : 23-07-03 02:15

On Tue, 22 Jul 2003 23:00:58 +0000 (UTC), Dennis Møller
<djm@dennermanner.dk> wrote:

>Og i dette tilfælde var det;
>wwwroot/test/cgi-bin/tutorial.mdb
>så du havde gennemskuet problemet!

I stedet for:
DSN = DSN & "DBQ=" & Server.MapPath("./cgi-bin/tutorial.mdb")
kan du bare undlade det første slash:
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/tutorial.mdb")
- så starter den også i det aktuelle bibliotek.

Vær opmærksom på, at nogle webhoteller har et directory uden for
webscope til upload af databaser, så de ikke umiddelbart kan
downloades fra Internet.
Hvis du får behov for dette, skal stien sikkert rettes.
Det er derfor oftest en fordel at have DSN-oplysninger i en separat
include-fil.
Det gør det under alle omstændigheder nemmere at vedligeholde.

>Jeg takker og har allerede forudset at jeg vender frygtelig tilbage til
>dette forum! :D Dennis.

Velbekomme - og du skal være velkommen!

Good luck!

--
Jørn Andersen,
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste