06. marts 2001 - 12:45
Der er
10 kommentarer og 2 løsninger
Vælge række 1 i tabel!
Hejsa! Jeg har for første gang lavet en Oracle database og har nu brug for at vælge den øverste post (ROW_NUM = 1) og få den vist. Men jeg får følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error \'80040e21\' ODBC driver does not support the requested properties. /new/budget/redirect.asp, line 12 Min linie 12 er min sql-sætning, som ser således ud: rs_skema.Open \"SELECT FROM Start_tabel WHERE ROW_NUM = 1 ORDER BY Id DESC\", Connect, 1, 3 Er der nogen der kan hjælpe???
Annonceindlæg tema
Cloud & AI
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
06. marts 2001 - 12:49
#1
Hej Webbe Det hedder rownum = 1. Så din select kommer til at se ud som følger: rs_skema.Open \"SELECT FROM Start_tabel WHERE ROW_NUM = 1 \", Connect, 1, 3 Der er vel ikke nogen grund til at lave en order by når du kun selecter 1 record.
06. marts 2001 - 12:50
#2
Sorry copy paste fejl rs_skema.Open \"SELECT FROM Start_tabel WHERE ROWNUM = 1 \", Connect, 1, 3
06. marts 2001 - 12:51
#3
Prøv først: rs_skema.Open \"SELECT FROM Start_tabel WHERE ROW_NUM = 1\", Connect, 1, 3 derefter byg lidt mere på hvis det virker som det skal..
06. marts 2001 - 12:51
#4
hej ehf! Jo det er der vel, for tabellen får jo nye poster løbende, dvs. Id (som bruges som primary key) hele tiden vokser og det er den sidste værdi der skal bruges (altså maxID) og derfor skal det vel være ORDER BY!
06. marts 2001 - 12:55
#5
Rigtigt! det er vist mig som sover. Order by er nødvendig. Men jeg mener stadig at du skal bruge ROWNUM ikke ROW_NUM
06. marts 2001 - 12:55
#6
Hva\' er det egentlig du vil SELECT\'e ? - du mangler en \'*\' (eller nogen kolonnenavne): SELECT * FROM Start_tabel WHERE ROWNUM = 1;
06. marts 2001 - 12:57
#7
Intet har hjulpet! Jeg skal vælge ALT fra tabellen, så jeg kan vise det i nogle text-fields!
06. marts 2001 - 13:00
#8
Hrmpf. Hvad sker der, hvis du prøver det direkte i SQL*Plus, udenom ODBC eller hvad det nu er du har gang i...?
06. marts 2001 - 13:13
#9
pgroen: Når jeg fyrer sætningen af direkte i min ORACLE ODBC 32Bit Test virker det! Det er det jeg ikke forstår ved det!
06. marts 2001 - 13:47
#10
ehf & pgroen: Hehe - havde lige overset, at den meldte fejl i en ny FIL hvor jeg bruger samme sætning, så det virker altså alligevel. Deler pointene imellem jeg 15-15, da ehf hjalp med ROW_NUM = ROWNUM og pgroen hjalp med SELCT *!
06. marts 2001 - 13:55
#11
Aha ! det er jo straks en anden snak... I øvrigt kan du IKKE bruge \'order by\' i forbindelse med \'rownum=1\', idét rownum indgår i sorteringen. Du bliver nødt til at bruge en konstruktion á la SELECT * FROM (SELECT * FROM start_tabel ORDER BY id DESC) WHERE rownum = 1; (Men det har ikke noget at gøre med dine ODBC-problemer)
06. marts 2001 - 14:01
#12
eller snarere: SELECT * FROM start_tabel WHERE ID = (SELECT MAX(id) FROM start_tabel); hvis ID er din primær-nøgle.
Computerworld tilbyder specialiserede kurser i database-management