Avatar billede d797fni Nybegynder
24. august 2000 - 11:00 Der er 9 kommentarer og
1 løsning

Vis kun de sidste 5......

Jeg har brugt dette stykke program kode til at vise de sidste 5 nyheder, men det virker ikke ??

HVad er der galt ?


Set myConn = Server.CreateObject(\"ADODB.Connection\")
    strSQL = \"SELECT top 5 * FROM news ORDER BY Dato DESC;\"
    myConn.Open tempConn
    Set rs = myConn.Execute(strSQL)
Avatar billede hornshoj Nybegynder
24. august 2000 - 11:05 #1
Hvad er fejlmeddelelsen...?
Avatar billede anchorpoint Nybegynder
24. august 2000 - 11:08 #2
Du kan bruge denne SQL:

strSQL = \"SET ROWCOUNT 5 SELECT * FROM news ORDER BY Dato DESC SET ROWCOUNT 0\"
Avatar billede d797fni Nybegynder
24. august 2000 - 11:10 #3
der er ingen fejlmeddelse, det virker bare ikke !
Avatar billede d797fni Nybegynder
24. august 2000 - 11:16 #4
fejl når jeg bruger anchorpoints svar:



Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access 97 Driver] Invalid SQL statement; expected \'DELETE\', \'INSERT\', \'PROCEDURE\', \'SELECT\', or \'UPDATE\'.

/velkommen1.asp, line 36
Avatar billede sjensen Nybegynder
24. august 2000 - 11:38 #5
det bør være

strSQL = \"SELECT TOP 5 * FROM news ORDER BY Dato DESC\"

men uden semikolon efter desc.

Se i øvrigt følgende spms:

http://www.eksperten.dk/spm/21891
http://www.eksperten.dk/spm/23705

Måske SKAL du bruge datoen som en del af de felter du selecter (og ikke kun *):

strSQL = \"SELECT TOP 5 dato FROM news ORDER BY Dato DESC\"

men så får du kun datofeltet selekteret
Avatar billede anchorpoint Nybegynder
24. august 2000 - 11:38 #6
Hmm.. kan godt være det kun virker med MS SQL server.
Avatar billede d797fni Nybegynder
24. august 2000 - 11:55 #7
hmmmm, hvis to poster har samme dato, så vælger den dem begge, dvs jeg sagtens kan få flere poster end 5 !
Avatar billede d797fni Nybegynder
24. august 2000 - 12:00 #8
Jeg fandt selv en metode til at komme uden om problemet, idet jeg har indført en nummering af posterne og sortere efter dem. Så min oprindelige metode virkede.
Avatar billede sjensen Nybegynder
24. august 2000 - 12:00 #9
jep, det er rigtigt.

Hvis du ikke kan bruge det er du nødt til at lave et loop bagefter:

if rs.recordcount > 5
i = 0
while not rs.eof or (i = 5)
// brug dataene fra
i = i +1
rs.movenext
loop
else
while not rs.eof
// brug dataene fra
rs.movenext
loop
endif
Avatar billede d797fni Nybegynder
24. august 2000 - 12:01 #10
sjensen får pointene for at bringe mig på sporet af fejlen..........tak alle sammen
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