Avatar billede fastwrite Nybegynder
23. oktober 2001 - 03:44 Der er 13 kommentarer og
3 løsninger

Select top 1

Hej. Jeg har en tabel (tbl_nyhed) med et autonummereringsfelt kaldet (herognuid). Hvordan kan jeg nu vælge den nyeste herognuid?

Jeg har prøvet med følgende:

StrSQL = \"SELECT TOP 1 * FROM tbl_nyhed ORDER BY herognuid Desc\"

Men den skriver fejl i linien hvor der står :

set rst = con.execute(StrSQL)

Hvad gør jeg forkert?
Avatar billede tdaugaard Nybegynder
23. oktober 2001 - 06:08 #1
Hvilken database bruger du ?

Access/MS SQL så kan jeg ingen fejl se, men hvis du bruger MySQL skal du bruge LIMIT

strSQL = \"SELECT * FROM tbl_nyhed ORDER BY herognuid DESC LIMIT 0,1\"

Start at record 0, return 1.
Avatar billede torbenmelander Nybegynder
23. oktober 2001 - 08:07 #2
Hvad er fejlen?
Avatar billede a-torsten Nybegynder
23. oktober 2001 - 08:33 #3
Hvilket format har herognuid ?? (Auoformat?? tal?? notat?? tekst??)
Avatar billede a-torsten Nybegynder
23. oktober 2001 - 08:34 #4
Hmm... Hvorfor skriver jeg Auoformat.. Jeg mente autonummering
Avatar billede tdaugaard Nybegynder
23. oktober 2001 - 08:36 #5
a-torsten, fjern lige søvnen fra øjnene *griner*

\"med et autonummereringsfelt kaldet (herognuid).\"

tjae .. et hurtigt slag på tasken .. et skud i tågen .. et wild guess .. måske et Auto Number felt ? *gg*
Avatar billede zubzer0 Nybegynder
23. oktober 2001 - 09:06 #6
Du kan evt. prøve følgende for at få den højeste herognuid, og den højeste vil vel være den nyeste i dit autonummereringsfelt.

SELECT * FROM tbl_nyhed WHERE herognuid =(SELECT MAX(herognuid)FROM tbl_nyhed)
Avatar billede chrille Nybegynder
23. oktober 2001 - 10:21 #7
Detta fungerar för mig!!

strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid DESC;\"
Avatar billede fastwrite Nybegynder
23. oktober 2001 - 11:55 #8
Jeg prøver lige
Avatar billede fastwrite Nybegynder
23. oktober 2001 - 11:59 #9
Der står følgende :

<%
Dim con, rst, strSQL

Set con = Server.CreateObject(\"ADODB.Connection\")
Set rst = Server.CreateObject(\"ADODB.Recordset\")

con.Open \"PROVIDER=MSDASQL;\" & _
\"DRIVER={Microsoft Access Driver (*.mdb)};\" & _
\"DBQ=\" & Server.MapPath(\"/database/herognu.mdb\") & \";\" & _
\"DefaultDir=\" & Server.MapPath(\".\") & \";\" & _
\"DriverId=25;\" & _
\"FIL=MS Access;\" & _
\"MaxBufferSize=512;\" & _
\"PageTimeout=5;\"

strSQL= \"SELECT * FROM tbl_nyhed WHERE herognuid =(SELECT MAX(herognuid)FROM tbl_nyhed)\"

set rst = con.execute (strSQL)

%>

Og den siger at der er fejl i \"set rst = con.execute (strSQL)\" too few parameters, siger den....
Avatar billede chrille Nybegynder
23. oktober 2001 - 12:08 #10
ok...vad som menas är att den vill ha mer information, d.v.s attdet saknas något för att köra SQL satsen.
Byt ut :
strSQL= \"SELECT * FROM tbl_nyhed WHERE herognuid =(SELECT MAX(herognuid)FROM tbl_nyhed)\"
mot:
strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid DESC;\"
så får vi se om det fungerar!!
Avatar billede fastwrite Nybegynder
23. oktober 2001 - 12:12 #11
Desværre, criller.. den skriver :
Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Avatar billede fastwrite Nybegynder
23. oktober 2001 - 12:13 #12
og så skriver den linien hvor der står \"set rst = con.execute (strSQL)\"
Avatar billede chrille Nybegynder
23. oktober 2001 - 12:17 #13
är du säker på att du stavat alla tabeller och fält helt rätt??? dubbelkolla detta.. det kan vara så enkelt att du missat ett mellanslag eller något.!

du kan också pröva med att ta bort \"DESC;\"
då blir SQL satsen:
strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid\"
Avatar billede fastwrite Nybegynder
23. oktober 2001 - 12:25 #14
Skriver det samme...
Avatar billede chrille Nybegynder
23. oktober 2001 - 12:29 #15
ok..då fortsätter vi felsökningen
skriv bara:
strSQL=\"select top 1 * from tbl_nyhed\"

vad händer då??
Avatar billede fastwrite Nybegynder
23. oktober 2001 - 19:11 #16
Så lykkedes det endelig. Jeg fandt ud af at jeg havde angivet et tabelnavn forkert, og ændret i nogle andre settings for at det kom til at virke. Resultatet:


strSQL=\"select top 1 * from tbl_nyhed  ORDER BY tbl_nyhed.herognuid DESC;\"


set rst = con.execute (strSQL)

%>

<a href=\"html/herognu/herognu.asp?kode=<%=rst(\"herognuid\")%>\"><%=left(rst(\"nyhed\"),22) & \"...\" %></a>

- point til alle.
mvh Fastwrite
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