Avatar billede topnut Nybegynder
14. maj 2002 - 16:34 Der er 9 kommentarer og
1 løsning

Underligt?!

Hej jeg har denne simple SELECT:

Set Connection = Server.CreateObject("ADODB.Connection")
    Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db/admin.mdb")
    SQLstring="SELECT TOP 2 * FROM news order by dato desc"
    SET RS=Connection.Execute(SQLstring)

Hvordan kan det lige være at den ikke KUN viser 2? - Derimod viser den alle de data som findes i databasen lige nu...

Håber i kan hjælpe

P.S. Jeg får ingen fejl-meddelelser!
Avatar billede topnut Nybegynder
14. maj 2002 - 16:35 #1
<%
    Set Connection = Server.CreateObject("ADODB.Connection")
    Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("../db/admin.mdb")
    SQLstring="SELECT TOP 2 * FROM onews order by dato desc"
    SET RS=Connection.Execute(SQLstring)
while not RS.EOF%>
      <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
        <tr>
          <td colspan="2"><b><%=rs("dato")%> @ <%=rs("tid")%>:</b></td>
        </tr>
        <tr>
          <td colspan="2"><%=rs("forord")%><br>
          </td>
        </tr>
        <tr>
          <td><br>
            //<%=rs("forfatter")%></td>
          <td align="right" valign="bottom"><a href="menu.asp?show=News&id=<%=rs("id")%>">Read
            more </a></td>
        </tr>
      </table>
<br><br>
      <%   
    RS.MoveNext
wend
   
RS.close
set RS =nothing
connection.close
set connection = nothing    %>

Her er hele koden...
Avatar billede tobby Nybegynder
14. maj 2002 - 16:35 #2
SQLstring="SELECT TOP 2 FROM news order by dato desc"
    SET RS=Connection.Execute(SQLstring)

- der var lige en * for meget ;)
Avatar billede topnut Nybegynder
14. maj 2002 - 16:36 #3
til den opmærksomme, så rettede jeg lige i teksten efter jeg prøvede noget andet, så tag jer ikek af tabelnavnet er ændret m.m.
Avatar billede topnut Nybegynder
14. maj 2002 - 16:37 #4
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] SELECT-sætningen indeholder et reserveret ord eller argument, der er stavet forkert eller mangler, eller tegnsætningen er ikke korrekt.

Denne fejl får jeg hvis jeg prøver at fjerne *
Avatar billede tmceu Praktikant
14. maj 2002 - 16:38 #5
tobby >> og hvilke felter skulle den vælge ? du skal enten angive en felt-liste eller *
Avatar billede tobby Nybegynder
14. maj 2002 - 16:40 #6
hmm - kan sgu ikke huske hvordan det er i Access - måske du kan bruge Limit?
SQLstring = "SELECT * FROM news order by dato desc Limit 0, 2;"
Avatar billede goose Nybegynder
14. maj 2002 - 16:40 #7
Du skal have stjernen med, men kan det skyldes at alle dine nyheder har samme dato ?
Prøv med:
SQLstring="SELECT TOP 2 * FROM onews order by id desc"
    SET RS=Connection.Execute(SQLstring)

- så skulle den kun tage de 2 nyeste.

/Goose
Avatar billede tobby Nybegynder
14. maj 2002 - 16:42 #8
naturligvis! - =)
Avatar billede _just4fun_ Nybegynder
14. maj 2002 - 16:42 #9
tobby >>  'top 2' er ekstra, man skal stadig vælge et eller andet at returnere ;-) Syntaxen er god nok, den burde kun returnere 2 med:
SELECT TOP 2 * FROM news order by dato desc
Kan det være dine sider er cachede??
Forsøg dig med at indsætte:
    Response.CacheControl = "no-cache"
    Response.AddHeader "Pragma","no-cache"
    Response.AddHeader "expire","0"
I toppen af dit ASP-dokument, clear din cache, og prøv så igen
Avatar billede _just4fun_ Nybegynder
14. maj 2002 - 17:04 #10
???? Top 2 returnerer flere end 2 :-)))) Det er vist en fejl, eller er der nogen der kan finde noget doc på dette: Jeg kan genskabe det på en Access-db, men ikke på en MSSqlserver...
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