/ 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
ASP - forbindelse til server problem
Fra : Brian Mouritsen


Dato : 05-04-08 10:05

Jeg er ved at lære ASP gennem de tutorials her på html.dk
Jeg er kommet til "Lektion 19: Hent data fra databasen"


' 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/database.mdb")
Conn.Open DSN


Hvad skal jeg skrive når jeg har min egen server ?
Stien til min database er "C:\Inetpub\wwwroot\db1.mdb"
Jeg har lavet databasen i Access 2000

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

 
 
Philip Nunnegaard (05-04-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 05-04-08 11:34

"Brian Mouritsen" <whimsef@hotmail.com> skrev i meddelelsen
news:47f740aa$0$90268$14726298@news.sunsite.dk...

> Hvad skal jeg skrive når jeg har min egen server ?
> Stien til min database er "C:\Inetpub\wwwroot\db1.mdb"
> Jeg har lavet databasen i Access 2000

Det nemmeste er at angive relative stier, og så have samme struktur på
nettet og på din egen maskine.
Selv har jeg i mappen "wwwroot" én mappe for hver hjemmeside, jeg har.
For de sider, jeg har lavet i ASP har jeg så igen 2 mapper i disse mapper:
1) www
2) db

Ca. samme struktur har de gerne på webhotellerne.
Fidusen ved dette er, at man ikke skal kunne komme til databasen via http://
alene, så det kun er dig og din asp-kode, der kan tilgribe databasen.

Alle asp- og html-filer har jeg i www-mappen, og databaserne har jeg så i
db-mappen.
For en asp-fil, der ligger i www-mappen hedder det så:
Server.MapPath("../db/db1.mdb")

Ligger de i en mappe, der ligger i www-mappen (hvilket er det mest
almindelige hos mig, så snart man kommer væk fra forsiden), bliver det så
til:
Server.MapPath("../../db/db1.mdb")
osv.

Offtopic:
Dette her er ikke et debatforum på html.dk. Det er en nyhedsgruppe på
usenet, som bl.a. kan læses via html.dk.
Selv læser jeg trådene via Windows Mail (news.tele.dk), og groups.google.com
er også et sted, hvorfra man kan læse dem.


Brian Mouritsen (05-04-2008)
Kommentar
Fra : Brian Mouritsen


Dato : 05-04-08 14:35

Philip Nunnegaard wrote in dk.edb.internet.webdesign.serverside.asp:
> "Brian Mouritsen" <whimsef@hotmail.com> skrev i meddelelsen
> news:47f740aa$0$90268$14726298@news.sunsite.dk...
>
> > Hvad skal jeg skrive når jeg har min egen server ?
> > Stien til min database er "C:\Inetpub\wwwroot\db1.mdb"
> > Jeg har lavet databasen i Access 2000
>
> Det nemmeste er at angive relative stier, og så have samme struktur på
> nettet og på din egen maskine.
> Selv har jeg i mappen "wwwroot" én mappe for hver hjemmeside, jeg har.
> For de sider, jeg har lavet i ASP har jeg så igen 2 mapper i disse mapper:
> 1) www
> 2) db
>
> Ca. samme struktur har de gerne på webhotellerne.
> Fidusen ved dette er, at man ikke skal kunne komme til databasen via http://
> alene, så det kun er dig og din asp-kode, der kan tilgribe databasen.
>
> Alle asp- og html-filer har jeg i www-mappen, og databaserne har jeg så i
> db-mappen.
> For en asp-fil, der ligger i www-mappen hedder det så:
> Server.MapPath("../db/db1.mdb")
>
> Ligger de i en mappe, der ligger i www-mappen (hvilket er det mest
> almindelige hos mig, så snart man kommer væk fra forsiden), bliver det så
> til:
> Server.MapPath("../../db/db1.mdb")
> osv.
>
> Offtopic:
> Dette her er ikke et debatforum på html.dk. Det er en nyhedsgruppe på
> usenet, som bl.a. kan læses via html.dk.
> Selv læser jeg trådene via Windows Mail (news.tele.dk), og groups.google.com
> er også et sted, hvorfra man kan læse dem.
>


Nu har jeg oprettet alle de der mapper :)

jeg har så sat det her ind i min .asp fil :

<html>
<head>
<title>Hente data fra database</title>
</head>
<body>
<%
' 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("/min side/db/db1.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * from personer"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do

' Udskriv værdien af kolonnen Fornavn
Response.Write rs("Fornavn") & "<br>"

' Gå til næste Record i rs
rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
</body>
</html>




Det skulle gerne se sådan her ud:
http://www.html.dk/tutorials/asp/lektion19_eks1.asp

Men den vil ikke hente de oplysninger fra databasen
Der kommer bare en blank side...
(der står godt nok "Hente data fra database" oppe i titel linien)

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

Finn Elmgaard (05-04-2008)
Kommentar
Fra : Finn Elmgaard


Dato : 05-04-08 17:23


"Brian Mouritsen" <whimsef@hotmail.com> wrote in message
news:47f78000$0$90274$14726298@news.sunsite.dk...
> Philip Nunnegaard wrote in dk.edb.internet.webdesign.serverside.asp:
> > "Brian Mouritsen" <whimsef@hotmail.com> skrev i meddelelsen
> > news:47f740aa$0$90268$14726298@news.sunsite.dk...
> >


> jeg har så sat det her ind i min .asp fil :
>
> <html>
> <head>
> <title>Hente data fra database</title>
> </head>
> <body>
> <%
> ' 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("/min side/db/db1.mdb")
> Conn.Open DSN
>
> ' SQL forespørgsel
> strSQL = "Select * from personer"
> ' Udfør forespørgsel (rs indeholder nu resultatet)
> Set rs = Conn.Execute(strSQL)
>
> ' Gennemløb Recordset (rs) med en løkke
> Do
>
> ' Udskriv værdien af kolonnen Fornavn
> Response.Write rs("Fornavn") & "<br>"
>
> ' Gå til næste Record i rs
> rs.MoveNext
>
> ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> Loop While Not rs.EOF
>
> ' Luk databaseforbindelse
> Conn.Close
> Set Conn = Nothing
> %>
> </body>
> </html>
>

> Det skulle gerne se sådan her ud:
> http://www.html.dk/tutorials/asp/lektion19_eks1.asp
>
> Men den vil ikke hente de oplysninger fra databasen
> Der kommer bare en blank side...
> (der står godt nok "Hente data fra database" oppe i titel linien)
>

Får du ingen fejlmeddelelser?

Den viste kode ser rigtig ud og skal virke.

Er du sikker på, at du har udfyldt data i den database, du connecter til
(db1.mdb). Dette er jo det defaultnavn, Access giver nye databaser?

Så undrer jeg mig lidt over din sti til databasen: Hvis din asp-side ligger
i mappen "min side" og din database ligger i en undermappe hertil benævnt
"db" skal du blot skrive: Server.MapPath("db/db1.mdb").
(Jeg ved ikke helt om det er afhængig af internetserver, men sådan virker
det i hvert fald på min IIS).

Måske har du fat i en anden db1.mdb, end du tror. Giv den evt. et unikt navn
og ret til i koden.

mvh
Finn





Brian Mouritsen (05-04-2008)
Kommentar
Fra : Brian Mouritsen


Dato : 05-04-08 20:12


> Får du ingen fejlmeddelelser?
>
> Den viste kode ser rigtig ud og skal virke.
>
> Er du sikker på, at du har udfyldt data i den database, du connecter til
> (db1.mdb). Dette er jo det defaultnavn, Access giver nye databaser?
>
> Så undrer jeg mig lidt over din sti til databasen: Hvis din asp-side ligger
> i mappen "min side" og din database ligger i en undermappe hertil benævnt
> "db" skal du blot skrive: Server.MapPath("db/db1.mdb").
> (Jeg ved ikke helt om det er afhængig af internetserver, men sådan virker
> det i hvert fald på min IIS).
>
> Måske har du fat i en anden db1.mdb, end du tror. Giv den evt. et unikt navn
> og ret til i koden.
>
> mvh
> Finn
>



Ingen fejlmeddelelse, bare en blank side,
jeg har tjekket at det er den rigtige database.

Jeg bruge også IIS server


min .asp ligger her: C:\Inetpub\wwwroot\Min side\www\default.asp
min .mdb ligger her: C:\Inetpub\wwwroot\Min side\db\db1.mdb




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

Finn Elmgaard (05-04-2008)
Kommentar
Fra : Finn Elmgaard


Dato : 05-04-08 21:17


"Brian Mouritsen" <whimsef@hotmail.com> wrote in message
news:47f7cf17$0$90265$14726298@news.sunsite.dk...
>

> Ingen fejlmeddelelse, bare en blank side,
> jeg har tjekket at det er den rigtige database.
>
> Jeg bruge også IIS server
>
>
> min .asp ligger her: C:\Inetpub\wwwroot\Min side\www\default.asp
> min .mdb ligger her: C:\Inetpub\wwwroot\Min side\db\db1.mdb
>
Det er der principielt ikke noget i vejen for. Men for at gøre stien så
simpel som muligt, så prøv at lægge din database i et underbibliotek til det
bibliotek, hvor du har din asp-side, altså i dit eksempel i
C:\Inetpub\wwwroot\Min side\www\db\db1.mdb. Så burde du kunne anvende
Server.MapPath("db/db1.mdb").

mvh
Finn




Brian Mouritsen (05-04-2008)
Kommentar
Fra : Brian Mouritsen


Dato : 05-04-08 22:01

> Det er der principielt ikke noget i vejen for. Men for at gøre stien så
> simpel som muligt, så prøv at lægge din database i et underbibliotek til det
> bibliotek, hvor du har din asp-side, altså i dit eksempel i
> C:\Inetpub\wwwroot\Min side\www\db\db1.mdb. Så burde du kunne anvende
> Server.MapPath("db/db1.mdb").
>
> mvh
> Finn
>

nej det hjalp heller ikke.

jeg skal da bare skrive C:\Inetpub\wwwroot\Min side\www\default.asp oppe i
adresse linien for at se det, ikke?

kan det være fordi min internet browser(IE7) blokkere det?

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

Ukendt (06-04-2008)
Kommentar
Fra : Ukendt


Dato : 06-04-08 08:52


"Brian Mouritsen" <whimsef@hotmail.com> skrev i en meddelelse
news:47f7e8a4$0$90270$14726298@news.sunsite.dk...
>> Det er der principielt ikke noget i vejen for. Men for at gøre stien så
>> simpel som muligt, så prøv at lægge din database i et underbibliotek til
>> det
>> bibliotek, hvor du har din asp-side, altså i dit eksempel i
>> C:\Inetpub\wwwroot\Min side\www\db\db1.mdb. Så burde du kunne anvende
>> Server.MapPath("db/db1.mdb").
>>
>> mvh
>> Finn
>>
>
> nej det hjalp heller ikke.
>
> jeg skal da bare skrive C:\Inetpub\wwwroot\Min side\www\default.asp oppe i
> adresse linien for at se det, ikke?
>
Nej
Prøv at skrive: localhost
Mvh
Henning



Brian Mouritsen (06-04-2008)
Kommentar
Fra : Brian Mouritsen


Dato : 06-04-08 09:38

> Nej
> Prøv at skrive: localhost
> Mvh
> Henning
>
>

så går den ind på: http://localhost/localstart.asp
og så for jeg sådan en velkomst side.
hvor der står:

"Your Web service is now running. To add documents to your default Web site,
save files in c:\inetpub\wwwroot\."

når jeg så sætter mit .asp dokument (default.asp) ind i c:\inetpub\wwwroot\
så kommer der bare den samme side.

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

Brian Mouritsen (06-04-2008)
Kommentar
Fra : Brian Mouritsen


Dato : 06-04-08 09:50


> så går den ind på: http://localhost/localstart.asp
> og så for jeg sådan en velkomst side.
> hvor der står:
>
> "Your Web service is now running. To add documents to your default Web site,
> save files in c:\inetpub\wwwroot\."
>
> når jeg så sætter mit .asp dokument (default.asp) ind i c:\inetpub\wwwroot\
> så kommer der bare den samme side.
>


Nej vent, der kommer en fejl meddelelse:

Error Type:
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 0xae4 Thread 0x258
DBC 0x12f4fec Jet kan ikke åbnes.
/Default.asp, line 11




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

Philip Nunnegaard (06-04-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 06-04-08 16:15

"Brian Mouritsen" <whimsef@hotmail.com> skrev i meddelelsen
news:47f88eb2$0$90266$14726298@news.sunsite.dk...

> Error Type:
> 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 0xae4 Thread
> 0x258
> DBC 0x12f4fec Jet kan ikke åbnes.
> /Default.asp, line 11

Umiddelbart kan jeg ikke tyde fejlmeldingen som andet end at den muligvis
ikke kan komme til databasen.
Måske kan det være mellemrummet i mappen "Min side"?

Måske hjælper det, hvis du kun bruger bogstaver, tal, - og _ i navnene på
både mapper og filer.
Og KUN små bogstaver og kun a-z (med kun små bogstaver undgår de fejl, som
måtte komme af, at du misser et stort bogstav et sted i processen).
F.eks. "min_side"

Ligger default.asp så i den mappe, bliver stien noget i retning af:
http://localhost/min_side/www/default.asp, når du indtaster det i din
browser.


Stig Johansen (06-04-2008)
Kommentar
Fra : Stig Johansen


Dato : 06-04-08 22:35

"Philip Nunnegaard" <nunnenospam@hitsurf.dk> wrote in message
news:47f8e8e7$0$15877$edfadb0f@dtext01.news.tele.dk...
> "Brian Mouritsen" <whimsef@hotmail.com> skrev i meddelelsen
> news:47f88eb2$0$90266$14726298@news.sunsite.dk...
>
> > Error Type:
> > 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 0xae4
Thread
> > 0x258
> > DBC 0x12f4fec Jet kan ikke åbnes.
> > /Default.asp, line 11
>
> Umiddelbart kan jeg ikke tyde fejlmeldingen som andet end at den muligvis
> ikke kan komme til databasen.

Det er fordi han prøver at bruge en ODBC driver, der højst sandsynligt ikke
er installeret.

Jeg bruger selv denne her streng:
oConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("/") + "/../database/wopr.mdb;Persist Security Info=False"

Eller også var det denne her:
oConnString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" +
Server.MapPath("/") + "/../database/wopr.mdb;Persist Security Info=False"

(Det har noget med Access 97 og 2000 at gøre)


--
Med venlig hilsen/Best regards
Stig Johansen




Philip Nunnegaard (07-04-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 07-04-08 01:14

"Stig Johansen" <wopr.dk@gmail.com> skrev i meddelelsen
news:47f941f0$0$90265$14726298@news.sunsite.dk...

> Det er fordi han prøver at bruge en ODBC driver, der højst sandsynligt
> ikke
> er installeret.

Det lyder mystisk, eftersom min streng ligner Brians meget - og her virker
det, når jeg starter op i XP (Access 2000).
Jeg har så lige konstateret, at det ikke virker på min Vista-partition, men
det kan skyldes, at jeg ikke har MS Office installeret her.
Men det kan selvfølgelig også skyldes, at Access ikke længere regnes som
gangbart som standarddatabase (Heller ikke set med Microsofts øjne), nu hvor
MS SQL findes i en "gratis" udgave.

Min ser sådan ud:
Dim objConnection, objRecordSet, strDSN, strSQL
Set objConnection = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("../db/databasenavn.mdb")
objConnection.Open strDSN

--- SQL-sætninger m.m. ---

Noget helt andet er, at jeg synes at det er ærgeligt, at html.dk ikke har
opdateret deres asp- og asp.NET-tutorials til 2008-forhold.


Stig Johansen (07-04-2008)
Kommentar
Fra : Stig Johansen


Dato : 07-04-08 07:52

Philip Nunnegaard wrote:

> "Stig Johansen" <wopr.dk@gmail.com> skrev i meddelelsen
> news:47f941f0$0$90265$14726298@news.sunsite.dk...
>
>> Det er fordi han prøver at bruge en ODBC driver, der højst sandsynligt
>> ikke
>> er installeret.
>
> Det lyder mystisk, eftersom min streng ligner Brians meget - og her virker
> det, når jeg starter op i XP (Access 2000).

Det kan godt være det lyder mystisk, men jeg forholdt mig til Brian's
fejlmeddelelse:
"Microsoft OLE DB Provider for ODBC Drivers (0x80004005)"

Der skriver han selv, at han bruger:
OLE DB --> ODBC --> Access.

> Jeg har så lige konstateret, at det ikke virker på min Vista-partition,
> men det kan skyldes, at jeg ikke har MS Office installeret her.
> Men det kan selvfølgelig også skyldes, at Access ikke længere regnes som
> gangbart som standarddatabase (Heller ikke set med Microsofts øjne), nu
> hvor MS SQL findes i en "gratis" udgave.
>
> Min ser sådan ud:
> Dim objConnection, objRecordSet, strDSN, strSQL
> Set objConnection = Server.CreateObject("ADODB.Connection")
> strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
> Server.MapPath("../db/databasenavn.mdb")
> objConnection.Open strDSN
>
> --- SQL-sætninger m.m. ---
>
> Noget helt andet er, at jeg synes at det er ærgeligt, at html.dk ikke har
> opdateret deres asp- og asp.NET-tutorials til 2008-forhold.

Jeg har, helt ærligt, undret mig over hvor f* de der underlige connection
strenge kommer fra.
Nu kan jeg se, at Brian har klippet fra Html.dk's tutorial.

Man har ikke brugt ODBC mod M$ produkter, hverken Access eller MS SQLServer
siden sidste årtusinde.
'Han' byggede i stedet sine ADO og OLE DB - ting.

.... 'cgi-bin'!?
Det er default directory til cgi *executables*, og har normal specielle
rettigheder i forhold til execution permission osv.
En *database* har *intet* at gøre i det directory.

Det vi nok føre for vidt at skrive i den her tråd, så jeg laver en hurtig
gennemgang af forbindelser til hhv. Access og mySQL.

Skærmdumps vil være baseret på engelsk version, men faneblade osv. burde
ligge samme sted.

Jeg giver et praj når det ligger der.
(Jeg er ikke Webdesigner, så det kan godt tage noget tid)

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408162
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste