Avatar billede jps2mt Nybegynder
30. juli 2002 - 11:29 Der er 20 kommentarer og
1 løsning

Problemer med Access / ASP

Jeg kan ikke se fejlen i dette script, men serveren kommer med en fejl 500 ( http://music.trab.dk )

<%
' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="..\database\MP3boss\data.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

If Request("action") = "" Then
strSQL = "SELECT * FROM Main ORDER BY Artist DESC"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
  Response.Write "<table border='1'>"
  Response.Write " <tr>"
  Response.Write "  <td align='center'>Kunstner</td>"
  Response.Write "  <td align='center'>Titel</td>"
  Response.Write "  <td align='center'>MP3-CD navn</td>"
  Response.Write " </tr>"
  Do While Not rs.EOF
  Response.Write " <tr>"
  Response.Write "  <td align='center'>" & rs("Artist") & "</td>"
  Response.Write "  <td align='center'>" & rs("Title") & "</td>"
  Response.Write "  <td align='center'>" & rs("Volume") & "</td>"
  Response.Write " </tr>"
  rs.MoveNext
  Loop
  Response.Write "</table>"
Else
  ' Hvis der ikke er fundet poster på søgningen
  Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
End If
%>
Avatar billede keysersoze Ekspert
30. juli 2002 - 11:34 #1
funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"

det vil hjælpe os lidt mere - og så kan du måske endda selv finde fejlen
Avatar billede jps2mt Nybegynder
30. juli 2002 - 12:09 #2
Hermed gjort, men den siger stadig fejl 500 (Server fejl)
Avatar billede neteffect Nybegynder
30. juli 2002 - 12:17 #3
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="..\database\MP3boss\data.mdb")

Er denne linie også knækket på den måde i dit script, altså uden _
Avatar billede jps2mt Nybegynder
30. juli 2002 - 12:20 #4
Knækket på hvilken måde...Den er hverken knækket herinde eller i mit script...

Men er kommet frem til, efter udelukkelsesmetoden, at fejlen ligger her (den nederste af linierne):

strSQL = "SELECT * FROM Main ORDER BY Artist DESC"
Set rs = myConn.Execute(strSQL)
Avatar billede coltau Juniormester
30. juli 2002 - 12:34 #5
Hvis der er fejl i nederste linie skal du sikre dig at du har en tabel der hedder Main og et felt i tabellen der hedder Artist. (Store og små bogstaver er ligegyldigt)

Andre fejl kan der ikke være i denne linie. !
Avatar billede keysersoze Ekspert
30. juli 2002 - 12:40 #6
umiddelbart er din strDNS forkert... enten skal du angive vha drevnavn - altså fx d:/web/etc

eller også skal du bruger Server.MapPath - altså fx

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("nyheder.mdb")
Avatar billede jps2mt Nybegynder
30. juli 2002 - 12:50 #7
coltau >> Det er der...

keysersoze >> Den havde jeg lige rettet...
Avatar billede eagleeye Praktikant
30. juli 2002 - 13:02 #8
Er de forskellige kolonnenavne:  Title, Volume, Artist  i forhold til kolonnenanvne i databasen?
Avatar billede eagleeye Praktikant
30. juli 2002 - 13:04 #9
hmm det skulle være .. er de stavet på samme måde.
Avatar billede eagleeye Praktikant
30. juli 2002 - 13:06 #10
Prøv også at tilføje en:

Set rs = Server.CreateObject("ADODB.Recordset")
Avatar billede jps2mt Nybegynder
30. juli 2002 - 13:23 #11
Fandt ud af at Volume hed Volume_Label, men stadig fejl...

Tilføjede set rs = .....
Stadig fejl...

Fatter det bare ikke, da det er samme måde jeg connecter til en anden Access DB...
Avatar billede jps2mt Nybegynder
30. juli 2002 - 13:37 #12
Okay...Dkrev det hele om, fik det til at virke, MEN...Nu ser det sådan her ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; Dbq=d:/www/database/MP3boss/data.mdb; uid=Admin; pwd=;"


If Request("action") = "" Then
SQL = "SELECT * FROM Main ORDER BY Artist"
Set rs = Conn.Execute(SQL)
If Not (rs.BOF Or rs.EOF) Then
  Response.Write "<table border='1'>"
  Response.Write " <tr>"
  Response.Write "  <td align='center'>Kunstner</td>"
  Response.Write "  <td align='center'>Titel</td>"
  Response.Write "  <td align='center'>MP3-CD navn</td>"
  Response.Write "  <td align='center'>Filnavn</td>"
  Response.Write " </tr>"
  Do While Not rs.EOF
  SQLvl = "SELECT * FROM Volumes WHERE ID=" & rs("Volume_Label")
  Set rs1 = Conn.Execute(SQLvl)

  Response.Write " <tr>"
  Response.Write "  <td align='center'>" & rs("Artist") & "</td>"
  Response.Write "  <td align='center'>" & rs("Title") & "</td>"
  Response.Write "  <td align='center'>" & rs("Volume_Label") & "</td>"
  Response.Write "  <td align='center'>" & rs("Filename") & "</td>"
  Response.Write " </tr>"
  rs.MoveNext
  Loop
  Response.Write "</table>"
Else
  ' Hvis der ikke er fundet poster på søgningen
  Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
End If
End If

' Rydder op efter os
Conn.Close
Set Conn = Nothing
%>

Og det giver server-fejl igen...Hvorfor nu det??

1) Kan det virkeligt være rigtigt at man ikke kan bruge ORDER BY i Access??
2) Kan man heller ikke bruge LIMIT i Access??
Avatar billede keysersoze Ekspert
30. juli 2002 - 13:42 #13
man kan godt bruge ORDER BY

man kan ikke bruge LIMIT - det hedder i stedet "select top 5 * from..."
Avatar billede jps2mt Nybegynder
30. juli 2002 - 13:44 #14
Hmmm...Den kommer med server-fejlen hvis jeg bruger ORDER BY, men fjerner jeg det, virker det...
Avatar billede jps2mt Nybegynder
30. juli 2002 - 13:45 #15
Mht. LIMIT, er det fordi jeg har brug for at lave noget ala Eksperten, med at den kun viser f.eks 50 linier pr. side...
Avatar billede keysersoze Ekspert
30. juli 2002 - 13:49 #16
i steder for bare at sige der kommer en fejl så sig hvilken fejl - lidt lettere at arbejde med så

mht limit så virker "top X" på næsten samme måde - den tager de X første... dog kan man ikke ligesom med limit springe nogle poster over direkte i sql'en
Avatar billede jps2mt Nybegynder
30. juli 2002 - 15:01 #17
Problemet er at den blot skriver 500 server fejl...(Prøv at kigge på http://music.trab.dk)
Avatar billede keysersoze Ekspert
30. juli 2002 - 15:15 #18
det er heller ikke særlig smart at lave egne fejlsider sålænge en side er under test. det er lettere at lade serveren komme med dens egne fejl for på den måde kan man SE hvad der går galt
Avatar billede jps2mt Nybegynder
30. juli 2002 - 15:56 #19
Microsoft OLE DB Provider for ODBC Drivers error '80040e57'

[Microsoft][ODBC Microsoft Access Driver] The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.

/index.asp, line 8
Avatar billede keysersoze Ekspert
30. juli 2002 - 18:30 #20
hvordan ser din sql ud når fejlen kommer?
Avatar billede jps2mt Nybegynder
30. juli 2002 - 20:03 #21
Har fundet fejlen...Det viste sig at det var en gammel Access 97 Db jeg brugte...Konverterede den til 2002 og så virkede det...
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