Avatar billede superole Nybegynder
10. november 2000 - 18:24 Der er 43 kommentarer og
4 løsninger

Forbindelse til database >>Haster<<

Jeg absolut nybegynder inden for asp, jeg er ved at lave en side med film anmeldelser.
jeg har haft nogele koder, til at få fobindelse til databasen, og til at lukke den igen, men desværre har jeg mistet dem, og jeg kan ikke finde nogen der virker sammen med den måde jeg trækker de forskellige oplysninger ud på

Jeg bruger følgende sætning til at trække et felt ud:
<%= rs.Titel %>

Det \"forbindelses\" script, som jeg skal bruge, skal skabe forbindelse til film.mdb

Jeg har brugt noget i stil med:
<%
movieID = Request.QueryString( \"movieid\" )

Set Conn = Server.CreateObject(\"ADODB.Connection\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath
(\"film.mdb\")
Conn.Open strDSN

strSQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID
Set rs = Conn.Execute( strSQL )
%>

Og dette til at lukke igen:
<%
  Conn.Close
  Set Conn = Nothing
%>


Men jeg for en meddelse om at siden ikke kan vises hvergang, min webhotel udbyder, siger at jeg mangler nogle \' for at få det til at virkde, men som sagt jeg er nybegynder, og ander ikke hvor de skal være

Avatar billede zaknafein Praktikant
10. november 2000 - 18:29 #1
Virker siden når du tester den, hos dig selv??
Avatar billede jimmidreng Nybegynder
10. november 2000 - 18:31 #2
Rs.Fields(\"Titel\") er den rigtige måde at hive værdien ud på!
Avatar billede jimmidreng Nybegynder
10. november 2000 - 18:33 #3
Evt.

<%
Do While NOT Rs.EOF
Response.write(RS(\"Titel\") & \"<br>\")
Rs.MoveNext
Loop
%>
Avatar billede jimmidreng Nybegynder
10. november 2000 - 18:34 #4
Husk at:
strSQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID

Kræver at feltet MOVIEID er Integer.

Er det ikke skal du bruge:


strSQL = \"SELECT * FROM FILM WHERE MOVIEID =\'\" & movieID & \"\'\"
Avatar billede superole Nybegynder
10. november 2000 - 18:53 #5
Nu har jeg prøvet at lave sætningen med Movieid om, samt jeg har prøvet den \"rigtige\" måde at trække data ud med, men det ser ikke ud til at der er noget der virker

www.sejs.dk/adm
Avatar billede netsjov Nybegynder
10. november 2000 - 18:54 #6
Det er meget let, din udbyder skal have lavet en dnsless forbindelse til dig hvis du skal bruge:

Set Conn = Server.CreateObject(\"ADODB.Connection\")
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath
(\"film.mdb\")

Du kan dog brugen en anden måde, dette er uden dnsless:

set conn = server.createobject(\"ADODB.connection\")
conn.Open \"DBQ=\"& Server.MapPath(\"film.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"\'


Sæt de den nedderste forbindelse ind i stædet, så virker det.
Avatar billede jimmidreng Nybegynder
10. november 2000 - 18:55 #7
Den skriver intern serverfejl, det er ikke din kode den er gal med, men serveren!

Prøv evt. lokalt hvis du har Personal Webserver installeret, eller post al din kode, så kan jeg kigge på den!
Avatar billede superole Nybegynder
10. november 2000 - 19:28 #8
Når jeg kører den, for jeg at vide at den ikke kan finde filen, men da min udbyder prøvede, fik han også en anden meddelse.

Jeg her kun filen movie.asp

<%
    movieID = Request.QueryString( \"movieid\" )

    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"film.mdb\")
    Conn.Open strDSN

%>

<html>

<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
<title>Ny side 1</title>
</head>

<body>

  <table border=\"1\" width=\"43%\" bordercolor=\"#006BB4\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"#000000\" height=\"64\">
    <tr>
      <td width=\"26%\" height=\"1\"><font color=\"#FFFFFF\" face=\"Arial\">Film navn:</font></td>
      <td width=\"74%\" height=\"1\"><font color=\"#006BB4\"><%= rs.Film navn %></font></td>
    </tr>
  </table>
<%
    Conn.Close
    Set Conn = Nothing
%>
</body>

</html>
Avatar billede superole Nybegynder
10. november 2000 - 19:31 #9
Jeg glæmte lige et par linier i forbindelses modulet:

<%
    movieID = Request.QueryString( \"movieid\" )

    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"film.mdb\")
    Conn.Open strDSN

    strSQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID
    Set rs = Conn.Execute( strSQL )

%>
Avatar billede netsjov Nybegynder
10. november 2000 - 19:38 #10
virker det ikke hvis du bruger min måde
Avatar billede superole Nybegynder
10. november 2000 - 19:58 #11
NEJ
Avatar billede netsjov Nybegynder
10. november 2000 - 20:01 #12
hvad skriver den
Avatar billede superole Nybegynder
10. november 2000 - 20:34 #13
Fuldstændig det samme:

Der er opstået en intern HTTP 500-serverfejl
Avatar billede dudal Nybegynder
10. november 2000 - 22:43 #14
Hvis feltet hedder \"Film navn\" så skal du skrive

<%= rs(\"Film navn\") %> istedet for <%= rs.Film navn %>

Mvh
Jesper
www.builder.dk
Avatar billede dudal Nybegynder
10. november 2000 - 22:45 #15
Prøv i øvrigt at gå ind under Avancerede instillinger i IE og find \"Show friendly error messages\" slå den fra, da den gør at man nogle gange bare får en 500 server error istedet for den rigtige fejlbesked.

Fejlen som rent faktisk kommer frem er:

Microsoft VBScript compilation error \'800a03ee\'

Expected \')\'

/adm/movie.asp, line 27

Response.Write(rs.Film navn)
-----------------------^
Avatar billede tdaugaard Nybegynder
11. november 2000 - 12:50 #16
Er det bare mig eller skal man ikke have en

Set rs = Server.CreateObject(\"ADODB.RecordSet\")

når man bruger RS som recordset ?
Avatar billede superole Nybegynder
11. november 2000 - 14:02 #17
>>tdaugaard

Nu har jeg prøvet med din setning, men med samme resultat
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:10 #18
Prøv at lave navnet om på dit felt \"film navn\" til \"filmnavn\". Mellemrum er en dum ting, selvom det godt kan være at det understøttes.

Prøv derefter denne kode, hvis ikke det virker er det din udbyder som de andre siger.

<%
    MovieID = Request.QueryString(\"movieid\")

    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Set Rs = Server.CreateObject(\"ADODB.RecordSet\")

    strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"film.mdb\")
    Conn.Open strDSN

    strSQL = \"SELECT * FROM film WHERE movied=\" & MovieID
    Set Rs = Conn.Execute(strSQL)

    If Not Rs.BOF Then
%>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
<title>Ny side 1</title>
</head>
<body>
  <table border=\"1\" width=\"43%\" bordercolor=\"#006BB4\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"#000000\" height=\"64\">
    <tr>
      <td width=\"26%\" height=\"1\"><font color=\"#FFFFFF\" face=\"Arial\">Film navn:</font></td>
      <td width=\"74%\" height=\"1\"><font color=\"#006BB4\"><%=rs(\"filmnavn\")%></font></td>
    </tr>
  </table>
<%
    Set Rs = Nothing
    Conn.Close: Set Conn = Nothing
%>
</body>
</html>
<%  Else %>
Der blev ikke fundet nogen film med ID #<%=MovieID%>.
<%  End If %>
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:19 #19
UPS!!

strSQL = \"SELECT * FROM film WHERE movieid=\" & MovieID

IKKE

strSQL = \"SELECT * FROM film WHERE movied=\" & MovieID

manglede lige et I.
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:31 #20
Har lige rette nogle små fejl og lavet lidt error handling.
Og det virker. Jeg har testet (lavede lige en DB med tabel \"film\" og to felter, movieid(tal), filmnavn(tekst)..) og det virker helt fint!

<%
    MovieID = Request.QueryString(\"movieid\")

    If MovieID > \"\" And IsNumeric(MovieID) Then
        Set Conn = Server.CreateObject(\"ADODB.Connection\")
        Set Rs = Server.CreateObject(\"ADODB.RecordSet\")

        strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"film.mdb\")
        Conn.Open strDSN

        strSQL = \"SELECT * FROM film WHERE movieid=\" & MovieID
        Set Rs = Conn.Execute(strSQL)

        If Not Rs.BOF Then
%>
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
<title>Ny side 1</title>
</head>
<body>
  <table border=\"1\" width=\"43%\" bordercolor=\"#006BB4\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"#000000\" height=\"64\">
    <tr>
      <td width=\"26%\" height=\"1\"><font color=\"#FFFFFF\" face=\"Arial\">Film navn:</font></td>
      <td width=\"74%\" height=\"1\"><font color=\"#006BB4\"><%=rs(\"filmnavn\")%></font></td>
    </tr>
  </table>
<%
        Set Rs = Nothing
        Conn.Close: Set Conn = Nothing
%>
</body>
</html>
<%        Else %>
Der blev ikke fundet nogen film med ID #<%=MovieID%>.
<%        End If
    Else
%>
Fejl! Intet ID at søge efter!
<%   
    End If
%>
Avatar billede superole Nybegynder
11. november 2000 - 14:36 #21
Jeg har prøvet din kode, men jeg får stadigvæk samme resultat.

Jeg har skrevet til min udbyder, men jeg for desværre nok først svar mandag engang....
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:39 #22
Hvilken fejl får du ?
Ihvertfald ikke rs.Film navn fejlen ..
Avatar billede dudal Nybegynder
11. november 2000 - 14:42 #23
Har du prøvet at fjerne \"Show friendly error messages\" i IE?

Fejlen er nu:

Microsoft VBScript compilation error \'800a03ea\'

Syntax error

/adm/movie.asp, line 38

Else
^
:-)

/Jesper
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:45 #24
dudal:> det er underligt. det virker helt fint her lokalt hos mig og der er ingen fejl på linie 38.
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:47 #25
dudal:> mente du om jeg havde slået Friendly error msg\'s fra ? ja .. for laaaang tid siden. det er man nød til når man laver ASP..
Avatar billede dudal Nybegynder
11. november 2000 - 14:50 #26
Det var nu egentlig også til superole :-)
Avatar billede tdaugaard Nybegynder
11. november 2000 - 14:51 #27
;-) okay, men det ku\' jeg ikke helt se :(
Avatar billede superole Nybegynder
11. november 2000 - 15:03 #28
>>dudal

Hvor slår jeg Friendly error fra ???
Avatar billede dudal Nybegynder
11. november 2000 - 15:08 #29
Jeg skrev det længere oppe i tråden, men du får den lige igen :-)

<copy>
Prøv i øvrigt at gå ind under Avancerede instillinger i IE og find \"Show friendly error messages\" slå den fra, da den gør at man nogle gange bare får en 500 server error istedet for den rigtige fejlbesked.
</copy>

/Jesper
Avatar billede superole Nybegynder
11. november 2000 - 15:15 #30
Jeg syntes ikke at jeg kan se den, hedder den det i DK versionen af 5.5
Avatar billede dudal Nybegynder
11. november 2000 - 15:26 #31
Hehe, aner det ikke. Jeg har den engelske version.

I UK versionen er vejen:

Tools -> Internet Options -> Advanced

Her er der en lang liste med checkboxes.  Under \"Browsing\" er der en linie der siger \"Show friendly HTTP error messages\".

Prøv at se om ikke du kan finde det ved at lave lidt fordanskning af oventående. :-)

/Jesper
Avatar billede ortrak Nybegynder
11. november 2000 - 17:18 #32
hvor er den langt ude den her...
Avatar billede netsjov Nybegynder
11. november 2000 - 19:13 #33
Nu gør jeg hvad der skulle have været gjort for lang tid siden. JEg har skrevet filen movie.asp for dig, så den virker.

Lig movie.asp i samme folder som film.mdb og så virker det.


movie.asp:
<%
    movieID = Request.QueryString( \"movieid\" )

    set conn = server.createobject(\"ADODB.connection\")
    conn.Open \"DBQ=\"& Server.MapPath(\"film.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
   
    SQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID
    Set rs = Conn.Execute(SQL)
%>

<html>

<head>
<title>Movie</title>
</head>

<body>

  <table border=\"1\" width=\"43%\" bordercolor=\"#006BB4\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"#000000\" height=\"64\">
    <tr>
      <td width=\"26%\" height=\"1\"><font color=\"#FFFFFF\" face=\"Arial\">Film navn:</font></td>
      <td width=\"74%\" height=\"1\"><font color=\"#006BB4\"><%= rs(\"Film navn\") %></font></td>
    </tr>
  </table>
<%
    Conn.Close
    Set Conn = Nothing
%>
</body>

</html>
Avatar billede superole Nybegynder
11. november 2000 - 20:29 #34
Perfekt det hjalp

Der er kun et problem nu, når jeg forsøger at trække de billeder med ud, som der også skal med, vil den ikke.

Billederne ligger ikke i databasen, men i en billede mappe ved siden af. I databasen, vælger jeg f.eks. ud for karakter \"2\" så skulle den gerne hente billedet 2.gif

Jeg bruger den nedstående kommando til at trække billedet ud, men når jeg forsøger, for jeg samme meddelse, som jeg har haft tideligere´.

<IMG SRC=\"posters/<%= rs.karakter %>.gif\" ALIGN=\"left\">

Er der ikke også en der kan fortælle mig, hvordan jeg i min fil default.asp kan få en komplet liste over indholdet i databasen, som den selv henter, jeg her prøvet med følgende, men det virker ikke:

<a href=\"movie.asp?movieid=<%=rs(\"movieid\")%>\"target=\"_self\"><%=rs(\"Film navn\")%></a>

Jeg tror ikke at det er det overstående det er galt med, mer derimod den kommando jeg bruger til at få forbindelse til databasen, men der står der jo noget med at hente movieid mm. hvilket den vel kun skal, når jeg skal have en enkelt post.

Er der en der gider skrive den kommando der skal til, for bare at få en liste over indholdet, hvor det er film navnene der står i en lang række ned af, det skal så være sådan, at når man klikker på dem, viser den anmeldelsen mm.
Avatar billede dudal Nybegynder
11. november 2000 - 20:33 #35
<IMG SRC=\"posters/<%= rs.karakter %>.gif\" ALIGN=\"left\">

Skal være:

<IMG SRC=\"posters/<%= rs(\"karakter\") %>.gif\" ALIGN=\"left\">

Altså: Når du skal angive et feltnavn er det på denne måde:

Rs(\"feltnavn\")

/Jesper
Avatar billede netsjov Nybegynder
11. november 2000 - 21:17 #36
Det er skam meget let(Alså det der med lidsten) Du brugere bare den samme database forbindelse som før. Overst på siden indsætter du alså:

<%

    set conn = server.createobject(\"ADODB.connection\")
    conn.Open \"DBQ=\"& Server.MapPath(\"film.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
   
    SQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID
    Set rs = Conn.Execute(SQL)
%>



Der efter skal vi have lavet nogle koder der løbber hele databasen igennem og skriver alt hvad der er i den. Denne kan indsætte overalt, og du kan andre den som du vil :
<p>
<%
do until rs.eof
%>
<A href=movie.asp?movieid=\'<%=rs(\"movieid\")%>\'><%=rs(\"Film navn\">%></a><br>
<%
rs.movenext
loop
%></p>

Her er så den kode stump der lukke database forbindelsen igen
<%
    Conn.Close
    Set Conn = Nothing
%>
Avatar billede superole Nybegynder
12. november 2000 - 10:35 #37
Ok nu er der tjek på det, men....

>>netsjov, jeg har prøvet din kode, til at lave en liste, men det virker desværre ikke
Avatar billede netsjov Nybegynder
12. november 2000 - 13:20 #38
Superole>> undskyld jeg lavede en lille fejl i kode stump nr2. Her er den uden fejl:

<p>
<%
do until rs.eof
%>
<A href=movie.asp?movieid=\'<%=rs(\"movieid\")%>\'><%=rs(\"Film navn\")%></a><br>
<%
rs.movenext
loop
%></p>
Avatar billede superole Nybegynder
12. november 2000 - 14:25 #39
>> netsjov

jeg har sammen sat filen sådan, jeg ved ikke om det er rigtigt, men det virker ikke:

<%

    set conn = server.createobject(\"ADODB.connection\")
    conn.Open \"DBQ=\"& Server.MapPath(\"film.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
   
    SQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID
    Set rs = Conn.Execute(SQL)
%>
<html>

<head>
<title>Test</title>
</head>

<body>


<p>


<p>
<%
do until rs.eof
%>
<A href=movie.asp?movieid=\'<%=rs(\"movieid\")%>\'><%=rs(\"Film navn\")%></a><br>
<%
rs.movenext
loop
%></p>


<%
    Conn.Close
    Set Conn = Nothing
%>


</body>

</html>
Avatar billede netsjov Nybegynder
12. november 2000 - 14:34 #40
JEg her ikke selv mulighed for at teste filerne, men dette skulle virke:

<%

    set conn = server.createobject(\"ADODB.connection\")
    conn.Open \"DBQ=\"& Server.MapPath(\"film.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
   
    SQL = \"SELECT * FROM FILM WHERE MOVIEID =\" & movieID
    Set rs = Conn.Execute(SQL)
%>
<html>

<head>
<title>Test</title>
</head>

<body>


<p>


<p>
<%
do while not RS.eof 

response.write \"<A href=\'movie.asp?movieid=\" & rs(\"movieid\") & \"\'>\" & rs(\"Film navn\") & \"</a><br>\"

rs.movenext
loop
%></p>


<%
    Conn.Close
    Set Conn = Nothing
%>


</body>

</html>
Avatar billede superole Nybegynder
12. november 2000 - 14:44 #41
Det virker stadigvæk ikke
Avatar billede netsjov Nybegynder
12. november 2000 - 14:53 #42
Åh ja. Du må meget undskylde jeg fend en meget dum fejl, som programmør må såden noget ikke ske. Jeg ved ikke om du vil tro mig, men NU SKAL det virke:

<%

    set conn = server.createobject(\"ADODB.connection\")
    conn.Open \"DBQ=\"& Server.MapPath(\"film.mdb\") & \";Driver={Microsoft Access Driver (*.mdb)};\"
   
    SQL = \"SELECT * FROM FILM\"
    Set rs = Conn.Execute(SQL)
%>
<html>

<head>
<title>Test</title>
</head>

<body>


<p>


<p>
<%
do while not RS.eof 

response.write \"<A href=\'movie.asp?movieid=\" & rs(\"movieid\") & \"\'>\" & rs(\"Film navn\") & \"</a><br>\"

rs.movenext
loop
%></p>


<%
    Conn.Close
    Set Conn = Nothing
%>


</body>

</html>
Avatar billede superole Nybegynder
12. november 2000 - 16:03 #43
Jeg krydser finger og prøver, og så vender jeg lige tilbage......
Avatar billede superole Nybegynder
12. november 2000 - 16:05 #44
Perfekt
Avatar billede netsjov Nybegynder
12. november 2000 - 16:34 #45
Det er jeg gald for at høre, men syntes du virkelg at du har fået lige meget hjælp fra dudal som fra mig, vi har jo begge fået 80 point.
Avatar billede superole Nybegynder
12. november 2000 - 16:54 #46
>>netsjov, det har du egentlig ret i, når jeg kigger det igennem igen, gå ind på:


http://www.eksperten.dk/spm/33059

så er der lige 50 ekstra point til dig!
Avatar billede dudal Nybegynder
12. november 2000 - 17:00 #47
Yeah.... Lad os gå vildt meget op i de points som vi kan købe en hel masse for... :-)))))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester