Avatar billede martins Nybegynder
05. august 2002 - 23:35 Der er 15 kommentarer og
1 løsning

SQL i loop

Nogen der kan fortælle mig hvorfor nedenstående ikke fungerer, og evt. komme med en løsning? :)

// forbindelse til database
    Set DB = Connect()   
   
    counter = 0

    do while counter <= 3
    counter = counter + 1
    SQL = "SELECT linknavn, adresse FROM links WHERE kategori = " & counter
    set RS&counter = DB.Execute(SQL)
    loop
Avatar billede soes Nybegynder
05. august 2002 - 23:38 #1
du kan ikke oprette en dynamisk variabel/object Rs&Count kan ikke lade sig gøre
Avatar billede medions Nybegynder
05. august 2002 - 23:38 #2
Ved ikke om dette vil hjælpe men prøve med Execute først...

counter = 0

    do while counter <= 3
    counter = counter + 1
    Execute SQL = "SELECT linknavn, adresse FROM links WHERE kategori = " & counter
    Execute set RS&counter = DB.Execute(SQL)
    loop

//>Rune
Avatar billede martins Nybegynder
05. august 2002 - 23:39 #3
Nope, fungerer ik
Avatar billede eagleeye Praktikant
05. august 2002 - 23:42 #4
Prøv at rette:
set RS&counter = DB.Execute(SQL)

Til:

Execute ("set RS"&counter & " = DB.Execute(SQL)")
Avatar billede stigc Nybegynder
05. august 2002 - 23:43 #5
Du er nød til at tænke om igen. Kan du ikke nøjes med at hente alt på en gang, og sorere efter kategori?


SELECT linknavn, adresse FROM links WHERE kategori = " & counter & " ORDER BY kateogri"
Avatar billede soes Nybegynder
05. august 2002 - 23:43 #6
kan du ikke skrive din sql anderledes?
Sql = "SELECT linknavn, adresse FROM links WHERE kategori BETWEEN 1 AND 3" jeg er ikke lige sikker på syntax
Avatar billede martins Nybegynder
05. august 2002 - 23:45 #7
grunden til jeg ville lave sql'en på den måde, var mest af dovenskab så jeg ikke skulle skrive 3 sql sætninger... jeg kan ikke rigtig bare nøjes med at sortere desværre :/
Avatar billede stigc Nybegynder
05. august 2002 - 23:47 #8
og jeg mente selvfølgelig:

"SELECT linknavn, adresse FROM links ORDER BY kategori"
Avatar billede stigc Nybegynder
05. august 2002 - 23:54 #9
Så er du nød til at forklare, hvorfor du vil have dem liggende i 3 variabler?
Avatar billede _just4fun_ Nybegynder
06. august 2002 - 00:05 #10
der er også noget der hedder IN, som virker som den du gerne vil bruge her:

Sql = "SELECT linknavn, adresse FROM links WHERE kategori IN (1,2,3)"

... strik selv 1,2,3 sammen...
Avatar billede martins Nybegynder
06. august 2002 - 08:32 #11
Grunden til jeg vil have 3 forskelllige varible, er for der skal udskrives 3 forskellige steder på siden, og så synes jeg at jeg havde mere styr over det :)
Avatar billede soes Nybegynder
06. august 2002 - 09:05 #12
er det ikke bare at ligge de forskellige værdier over i et array og så kalde dem når du skal bruge dem?
Avatar billede _just4fun_ Nybegynder
06. august 2002 - 09:48 #13
Hvis du laver det i EN query til dabasen skal du kun En gang ned til DBen.. og mht. de 3 forskellige steder på siden.....
<%
'* Sted 1
rs.movefirst
rs.filter = "katerori=1"
do until rs.eof
  rs.movenext
loop
%>

<%
'* Sted 2
rs.movefirst
rs.filter = "katerori=2"
do until rs.eof
  rs.movenext
loop
%>

<%
'* Sted 3
rs.movefirst
rs.filter = "katerori=3"
do until rs.eof
  rs.movenext
loop
%>

Du skal bare huske at lave dit recordset som et dynamisk clientside recordset da du ellers ikke kan gå frem og tilbage, eller filtrere :

set rs = server.createobject("adodb.recordset")
with rs
    .CursorType = 2 '* = adopenDynamic
    .CursorLocation = 3 '* = adUseClient
    .Source = sql
    .ActiveConnection = application("dbConn")
    .Open
    set .ActiveConnection = nothing
end with
Avatar billede _just4fun_ Nybegynder
06. august 2002 - 09:49 #14
Queryen skal så selvfølgelig også returnere katerori...
Avatar billede martins Nybegynder
07. august 2002 - 07:00 #15
Hey tak du... det var sq smart :) Takker og nejer
Avatar billede tommy_carstensen Nybegynder
22. august 2004 - 18:32 #16
Jeg sidder med samme problem. Kan du sende mig koden, som den så ud, da du fik det til at virke?
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