Avatar billede webbygger Nybegynder
18. november 2005 - 23:07 Der er 31 kommentarer og
1 løsning

Paging problem!

Jeg kan ikke få paging til at hente de rigtig \request.querystring("id")\ til siden/sider, har hulens gør jeg forkert???
Jeg får denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

ODBC driver does not support the requested properties.

/upload/kategori.asp, line 25




<body>
<!--#include file="inc_top.asp" -->
<!--#include file="inc_menu.asp" -->

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL =  "Select * From tekst Where kategori = "&request.querystring("id") & "ORDER BY id desc"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("foto.mdb")
rs.Open strSQL, strDSN, 1    <<------line 25
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 5
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
  Response.Write "&nbsp;" & "&nbsp;" & "&nbsp;" & "&nbsp;" & "&nbsp;" & "&nbsp;" & "<H3>" & rs("kategori") & "</H3>"
  Do While Not rs.EOF And intRecCount > 0
  %>


<table width="102%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>
         

       
        <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF">
        <tr> <td bordercolor="#CCCCCC">
              <table width="100%" border="0" align="center" cellpadding="5" cellspacing="0" class="ramme">
                <tr>
                  <td width="145" align="right" valign="top" bordercolor="#FFFFFF">
                    <div align="left">Hits : <% = rs("hits")%>
                      <a href="vis.asp?rid=<%=rs("id") & "&amp;t=" & rs("kategori")%> ">
                     
                  <%billed_url = rs("billede")
                  if billed_url<>"" then
                    Response.write "<br>" & "<br>" & "<img src='" & "thumbnails100" & "/" & Mid(billed_url,9) & "' class=""rammesort"" alt=""billede"" title=""lystfiskerensnet"" >"
                      end if%></a>
                      </div>
                          </td>
                         
                  <td align="left" valign="middle"><br> <strong><font size="2">
                    <% = rs("titel") %>
                      </strong><br>
                    Indsendt af:&nbsp;&nbsp;<% = rs("indsendt") %><br>
                        <%    Str = rs("bemarkning") 
If len(Str) > 35 Then
  Response.write(left(Str, 35) & "  .....")
Else
  Response.Write Str
end if
                   
                    %>
                    <br>
                    <a href=vis.asp?rid=<% = rs("id") & "&t=" & rs("kategori") %>  " target='_top'" & > >> se mere<br></a></td>
                </tr>
               
              </table>
</td>
</tr>





</table>
       
        </td>
      </tr>
     
     
    </table>
   
   
   

   
       

    <%
   
   
  intRecCount = intRecCount - 1
  rs.MoveNext
  Loop
End If

rs.Close
Set rs = Nothing


Response.Write "<p>Gå til side "
For intNum = 1 To intPageCount
  Response.Write  "[" & "<a href=kategori.asp?id="&request.querystring("id") & "page=" & intNum & ">" & intNum & "</a>" & "]" & "&nbsp;"
Next

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=kategori.asp?page=" & intPage - 1 & ">Forrige</a>"
Else
  Response.Write "Forrige"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<a href=kategori.asp?page=" & intPage + 1 & ">Næste</a> "
Else
  Response.Write "Næste"
End If
%>
Avatar billede softspot Forsker
19. november 2005 - 00:19 #1
Prøv evt. at udskifte din connectionstring med denne:

strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("foto.mdb")
Avatar billede webbygger Nybegynder
19. november 2005 - 18:11 #2
Hej Softspot

Jeg har prøvet, at indsætte overnævnet for så denne fejl

Microsoft JET Database Engine error '80040e14'

Syntax error in string in query expression 'kategori = 'FangstRapporterORDER BY id desc'.

/upload/kategori.asp, line 25

Siden jeg prøver på, at få paging til at kører på er http://www.web-byggeren.dk/upload/kategori.asp?id='FangstRapporter%202005/Havørred'
Avatar billede webbygger Nybegynder
19. november 2005 - 21:33 #3
Jeg er ret sikker på, at det er request.querystring("id") den taber, men jeg kan ikke lige se hvordan det skal laves......
Avatar billede webbygger Nybegynder
19. november 2005 - 22:30 #4
Har fundet fejlen, script kunne/vil ikke læse et mellem som er i request.querystring("id") eks. "Billeder 2005/natur"
Avatar billede softspot Forsker
20. november 2005 - 00:01 #5
Spøjst! Jeg ville til hver en tid have troet at det var det manglende mellemrum mellem værdien til kategori og ORDER BY der gav fejlen...(?)

Anyway! Ked af at jeg ikke har været mere responsiv, men jeg har desværre været forhindret. Godt du fandt en løsning på dit problem (helt alene :)).
Avatar billede webbygger Nybegynder
20. november 2005 - 18:38 #6
Avatar billede softspot Forsker
20. november 2005 - 19:45 #7
Jeg tror egentlig du kan klare det ved at sætte href-værdierne i anførselstegn som du gør mange af de andre attribut-værdier (det er god skik :)).
Avatar billede webbygger Nybegynder
20. november 2005 - 20:00 #8
Jeg syntes det er pudsigt det her :o(
Valid problemet er "kun" på nogen af sider(paging) og problemet optræde på en side!!!

Det er denne linie  Response.Write  "[" & "<a href=kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & ">" & intNum & "</a>" & "]" & "&nbsp;"

Siden er http://www.web-byggeren.dk/upload/kategori.asp?id='FangstRapporter2005/Havørred'
Avatar billede softspot Forsker
20. november 2005 - 22:12 #9
Hvad nu hvis du skriver:

Response.Write  "[<a href=""kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & """>" & intNum & "</a>]&nbsp;"
Avatar billede softspot Forsker
20. november 2005 - 22:15 #10
Prøv i øvrigt også dette lille trick for at undgå det problem med apostroffer i feltværdier i forespørgsler mod databasen:

strSQL =  "Select * From tekst Where kategori = '"& replace(request.querystring("id"),"'","''") & "' ORDER BY id desc"
Avatar billede webbygger Nybegynder
20. november 2005 - 22:21 #11
Har stadig den sammen fejl med Response.Write  "[<a href=""kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & """>" & intNum & "</a>]&nbsp;"

Når jeg ændre strSQL sætning, kan den ikke finde nogen poster!!!
Avatar billede softspot Forsker
20. november 2005 - 22:28 #12
Hvordan ser dine data i tabellen tekst ud? Det virker forkert at du angiver en tekst i kriteriet kategori, men ikke angiver at det er en tekst ifht. din forespørgsel mod databasen...
Avatar billede webbygger Nybegynder
20. november 2005 - 22:31 #13
Jeg er ikke helt med hvad du mener softspot???
Avatar billede webbygger Nybegynder
20. november 2005 - 22:33 #14
En tekst i kategori kan eks. se sådan ud "FangstRapporter2005/Havørred"
Avatar billede softspot Forsker
20. november 2005 - 22:39 #15
Jeg tager udgangspunkt i flg. SQL (fra spørgsmålteksten):

strSQL =  "Select * From tekst Where kategori = "&request.querystring("id") & "ORDER BY id desc"

og bider specielt mærke i denne del af SQL-sætningen:

kategori = "&request.querystring("id") & "ORDER

For det første indikerer du her overfor databasen af du vil søge efter en non-tekst værdi (idet du ikke omstiller request.querystring("id") med apostroffer). Dette er jo ikke korrekt, hvis kategori er et tekstfelt i databasen.

For det andet, så mangler der et mellemrum  mellem værdien til kategori og SQL-nøgleordet "ORDER", hvilket vil give en fejl (den du ser på sitet nu kunne f.eks. udspringe af disse to faktorer i kombination).
Avatar billede softspot Forsker
20. november 2005 - 22:39 #16
Prøv evt. at poste koden igen, så vi kan følge med i hvilken kode vi skal forholde os til... :)
Avatar billede webbygger Nybegynder
20. november 2005 - 22:42 #17
Her er hele koden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>LystfiskerensNet</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">

<body>
<!--#include file="inc_top.asp" -->
<!--#include file="inc_menu.asp" -->

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If



Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL =  "Select * From tekst Where kategori = "&request.querystring("id") & "ORDER BY id desc"
strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("foto.mdb")
rs.Open strSQL, strDSN, 1 %>


<H5><% Response.Write Request.Querystring("id") %></H5>

<%
if rs.EOF then
%>
<b>Der er desværre endnu ikke tilføjet nogle billeder i denne kategori</b>
<%
else


  rs.PageSize = 5
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
'** Paging part end

Counter = 1
'**paging ændre do util linien:
'do until rs.eof
Do While Not rs.EOF And intRecCount > 0
IF Counter = 4 Then
Counter = 1
End if
%>
 


<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>
         

       
        <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr> <td>
              <table width="100%" border="0" align="center" cellpadding="5" cellspacing="0" class="ramme">
                <tr>
                  <td width="145" align="right" valign="top">
                    <div align="left">Hits : <% = rs("hits")%>
                    <a href="vis.asp?rid=<%=rs("id") & "&amp;t=" & rs("kategori")%> ">
                     
                  <%billed_url = rs("billede")
                  if billed_url<>"" then
                    Response.write "<br>" & "<br>" & "<img src='" & "thumbnails100" & "/" & Mid(billed_url,9) & "' class=""rammesort"" alt=""billede"" title=""lystfiskerensnet"" >"
                      end if%></a>
                      </div>
                          </td>
                         
                  <td align="left" valign="middle"><br>
                    <B><% = rs("titel") %></B> <br>
                    Indsendt af:&nbsp;&nbsp;<% = rs("indsendt") %><br>
                        <%    Str = rs("bemarkning") 
If len(Str) > 35 Then
  Response.write(left(Str, 35) & "  .....")
Else
  Response.Write Str
end if
                   
                    %>
                    <br>
                    <a href="vis.asp?rid=<% = rs("id") & "&t=" & rs("kategori") %>  "><B> >> se mere</B><br></a></td>
                </tr>
               
              </table>
</td>
</tr>





</table>
       
        </td>
      </tr>
     
     
    </table>
   
   
   

   
       

    <%
   
   
  intRecCount = intRecCount - 1
  rs.MoveNext
  Loop
End If

rs.Close
Set rs = Nothing


response.write"<table>"

response.write"<tr>"

    response.write"<td>"
   
Response.Write "<p>Gå til side"
For intNum = 1 To intPageCount 
  Response.Write  "[" & "<a href=kategori.asp?page=" & intNum & "&id=" & request.querystring("id") & ">" & intNum & "</a>" & "]" & "&nbsp;"
Next

Response.write "</td></tr><tr><td>"

Response.Write "<p>"
If Clng(intPage) > 1 Then
  Response.Write "<a href=kategori.asp?page=" & intPage - 1 & "&id=" & request.querystring("id") & ">Forrige</a> "
Else
  Response.Write "Forrige"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
   
   
  Response.Write "<a href=kategori.asp?page=" & intPage + 1 & "&id=" & request.querystring("id") & ">Næste</a> "
Else
  Response.Write "Næste"
 


 
End If
  response.write"</td>"
    response.write"</tr>"
       
    response.write "</table>"


%>



    <!--#include file="inc_footer.asp" -->
  </body>
</html>
Avatar billede softspot Forsker
20. november 2005 - 22:46 #18
Start med at rette denne linie (også selvom det betyder at du ikke finder noget, for dne nuværende version er syntaktisk ulovlig :)):

strSQL =  "Select * From tekst Where kategori = '" & replace(request.querystring("id"),"'","''") & "' ORDER BY id desc"

Hvis nu vi kan få siden til at køre uden fejl først, så kan vi altid adressere næste udfordring bagefter :)
Avatar billede webbygger Nybegynder
20. november 2005 - 22:49 #19
Nu har jeg ændret SQL-sætning og den kommer i for sig ikke op med en fejl, men den kan "bare" ikke finde nogen billeder se evt. her http://www.web-byggeren.dk/upload/kategorier.asp
Avatar billede softspot Forsker
20. november 2005 - 22:53 #20
Det er fordi parametrene i dine links benytter formatet 'værdi' i stedet for bare værdi, f.eks.:

/upload/kategori.asp?id='FangstRapporter2005/Havørred'

i stedet for det som jeg umiddelbart ville synes var mest hensigtsmæssigt, nemlig:

/upload/kategori.asp?id=FangstRapporter2005/Havørred

Hvis du undlader at angive anførselstegnene i linket og i stedet sætter dem ind i din SQL-sætning, så er det også lettere at sikre sig mod SQL-injection (som jeg vil undlade at komme nærmere ind på her - men tro mig, det vil du helst ikke udsættes for! :)).
Avatar billede webbygger Nybegynder
20. november 2005 - 23:03 #21
Har "fundet" billeder igen da jeg fjernet '' fra linket a href="kategori.asp?id='FangstRapporter2004/Havørred'" ...........
Avatar billede softspot Forsker
20. november 2005 - 23:04 #22
Ja, jeg sidder også og kigger på store fisk! :)
Avatar billede webbygger Nybegynder
20. november 2005 - 23:11 #23
Avatar billede softspot Forsker
20. november 2005 - 23:13 #24
Ja, jeg har lige smugkigget (man er vel nysgerrig :)). Men det ser ud til at & giver nogle problemer i dine URL'er, så prøv bare at udskifte & med &amp; i den første linie hvor W3C's validator melder fejl.
Avatar billede softspot Forsker
20. november 2005 - 23:23 #26
Det tror jeg er en kombination af at du skal bruge anførselstegn omkring hele attributværdien for href og så at du skal konvertere & til &amp; som før...
Avatar billede softspot Forsker
20. november 2005 - 23:25 #27
P.S. jeg er opmærksom på at du har brugt anførselstegn omkring de fleste af de linier hvor der er fejl, men betyder jo blot at der kun mangler &amp; i stedet for & :)
Avatar billede webbygger Nybegynder
20. november 2005 - 23:29 #28
Jeg kan s.. ikke slippe af med dem ......

Response.Write  "[" & "<a href=kategori.asp?page=" & intNum & "&amp;id=" & request.querystring("id") & ">" & intNum & "</a>" & "]" & "&nbsp;"
Next

Response.write "</td></tr><tr><td>"

Response.Write "<p>"
If Clng(intPage) > 1 Then

  Response.Write "<a href=kategori.asp?page=" & intPage - 1 & "&amp;id=" & request.querystring("id") & ">Forrige</a> "
Else
  Response.Write "Forrige"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
   
   
  Response.Write "<a href=kategori.asp?page=" & intPage + 1 & "&amp;id=" & request.querystring("id") & ">Næste</a> "
Avatar billede softspot Forsker
20. november 2005 - 23:40 #29
Jeg synes da også du er gået i den modsatte retning af hvad jeg foreslog :)

Du skal omslutte attribut-værdien med anførselstegn - ikke fjerne dem. Altså:


Response.Write "[<a href=""kategori.asp?page=" & intNum & "&amp;id=" & request.querystring("id") & """>" & intNum & "</a>]&nbsp;"
Next

Response.write "</td></tr><tr><td>"

Response.Write "<p>"
If Clng(intPage) > 1 Then

  Response.Write "<a href=""kategori.asp?page=" & intPage - 1 & "&amp;id=" & request.querystring("id") & """>Forrige</a> "
Else
  Response.Write "Forrige"
End If

Response.Write "&nbsp;"

If Clng(intPage) < Clng(intPageCount) Then
   
   
  Response.Write "<a href=""kategori.asp?page=" & intPage + 1 & "&amp;id=" & request.querystring("id") & """>Næste</a> "
Avatar billede webbygger Nybegynder
20. november 2005 - 23:45 #30
SORRY jeg må være træt i ansigtet....................MEN det virker!
Tak for din udholdendehed softspot ;o))

Smider du et svar?
Avatar billede softspot Forsker
20. november 2005 - 23:50 #31
Det kommer der - velbekomme :D
Avatar billede softspot Forsker
20. november 2005 - 23:53 #32
Tak for point :)
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