webForumDet fria alternativet

"Sammanfoga recordset"

ASP

3 svar · 375 visningar · startad av trexter

Medlem sedan mars 20021 889 inlägg
Frågan#1

Säg att jag har ett antal SQL-frågor:

strSQL = "select * from Arenden where ArendeID ="&Request.QueryString("ArendeID")
strSQL = "select * from ArendeStatus where ArendeID ="&Request.QueryString("ArendeID")
strSQL = "select * from Kunder k"&_
		 "inner join Arenden a ON k.KundeID = a.ArendeKundNr "&_
		 "where ArendeID ="&Request.QueryString("ArendeID")
strSQL = "select * from Produkter p "&_
		 "inner join Arenden a ON p.ProduktID = a.ArendeProdukt "&_
		 "where ArendeID ="&Request.QueryString("ArendeID")
		 
strSQL = "select * from Tillverkare t "&_
		 "inner join Produkter p ON t.TillverkareID = p.ProduktTillverkare "
		 "inner join Arenden a ON p.ProduktID = a.ArendeProdukt "&_
		 "where ArendeID ="&Request.QueryString("ArendeID")

Varje SQL-fråga returnerar endast en rad.
Ett sett att sedan visa all information vore ju att använda en mängd recordset men skulle man inte i stället kunna sammanfoga flera?

T ex:
Säg att jag hämtar datan: "nisse" "ohlsson"
samt: "volvo" "v70"
i stället för att hantera 2 RecordSet, kan man inte fixa så att jag har all data i ett RecordSet: "nisse" "ohlsson" "volvo" "v70" ?

:)

Medlem sedan dec. 19996 721 inlägg
#2

Antingen slår man ihop resultaten i SQL, genom att köra UNION, om detta stöds av databasmotorn.

SELECT firstname,lastname from people
UNION
SELECT brand,model from cars

Detta kräver att man plockar ut lika många kolumner från alla tabeller, med samma datatyper i samma ordning.

...eller så kör man alla frågor på en gång, normalt sett avgränsade med semikolon, och loopar igenom det hela.


strSQL="SELECT firstname,lastname from people;" &_
             "SELECT brand,model from cars"

set rs=conn.Execute(strSQL)

do until rs is nothing
   do until rs.eof
      response.write rs(0) & "<BR>"
      rs.movenext
   loop
   set rs=rs.nextrecordset
loop
Medlem sedan mars 20021 889 inlägg
#3

Okej, men om vill hämta lite data från Recordset 1, och sedan lite från2 och sedan från 1 igen osv. då kan man alltså glömma detta?

Medlem sedan juni 200032 967 inlägg
#4

Om du ändå bara får en post från varje delfråga, så är det ju bara att du sätter variabler i loopen istället för att göra utskrifter direkt.

Om du använder UNION-metoden kan du stega fram och tillbaka (om recordsettypen stödjer det), det är ju ett helt vanligt recordset.

280 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
146 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)