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?
Annonceindlæg fra Partnertekst
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.
23. oktober 2001 - 08:07
#2
Hvad er fejlen?
23. oktober 2001 - 08:33
#3
Hvilket format har herognuid ?? (Auoformat?? tal?? notat?? tekst??)
23. oktober 2001 - 08:34
#4
Hmm... Hvorfor skriver jeg Auoformat.. Jeg mente autonummering
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*
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)
23. oktober 2001 - 10:21
#7
Detta fungerar för mig!! strSQL=\"select top 1 * from tbl_nyhed ORDER BY tbl_nyhed.herognuid DESC;\"
23. oktober 2001 - 11:55
#8
Jeg prøver lige
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....
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!!
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.
23. oktober 2001 - 12:13
#12
og så skriver den linien hvor der står \"set rst = con.execute (strSQL)\"
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\"
23. oktober 2001 - 12:25
#14
Skriver det samme...
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å??
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
Kurser inden for grundlæggende programmering