menar du:
Dim rs
Set rs = conn.execute("select * from tabell")
Do Until rs.eof
response.write rs("fält") & "<br>"
rs.movenext
loop
------------------
/bohlin
kaffe är djävulens dryck
glögg är guds dryck
19 svar · 225 visningar · startad av Ricki
Tjena,
Jag undrar om det går att hämta poster från en databas utan att använda ett recordset. Typ såhär:
Conn.Execute "Select * From Tabell"
Hur gör jag sedan för att skriva ut alla poster som finns i tabellen?
------------------
Hälsningar Ricki
www.ricki.nu
menar du:
Dim rs
Set rs = conn.execute("select * from tabell")
Do Until rs.eof
response.write rs("fält") & "<br>"
rs.movenext
loop
------------------
/bohlin
kaffe är djävulens dryck
glögg är guds dryck
Det där kommer inte att få, för connection objectet stöder inte EOF och movenext
------------------
Hälsningar Ricki
www.ricki.nu
Jodå, connectionobjektet stödjer visst movenext och EOF...
------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Är du med i facket?
det gör det visst det, det blir automatiskt ett recordset när den känner av att det kommer något ur en databas.
Behöver man alldrig använda rcordsetobjektet då?
När ska det användas då?
------------------
Hälsningar Ricki
www.ricki.nu
recordset ska du bara använda när du ska hämta poster, aldrig annars.
Har för mig att jag läst någonstans om hur man sparar resultatet från eb databasfråga i en vanlig array... minns inte riktigt vart jag läste det :(
Jag hör av mig om jag hittar det.
Recordset behöver du inte använda när du hämtar poster...
------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Är du med i facket?
rymdknark: metoden heter getrows() och är kanonbra. ibland i alla fall.
vide: öhh, va :q
------------------
don't follow your friends -- inflate them
Man behöver inte initiera objektet Recordset för att hämta poster ur databasen...
------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Är du med i facket?
ok, vide, men vad är det du får tillbaka när du skriver set rs = conn.execute (blaha)?
ä de'nte ett recordset, månne? :q
------------------
don't follow your friends -- inflate them
Jo, visst är det det. Man måste ha ett recordset för att returnera raderna i sökningen.
Ni missförstår mig nog... visst, ett recordset skapas automatiskt genom att exekvera connetcionsobjektet med en SQLsats... via detta skapas ett recordset (Set RS = ...), men du behöver aldrig skapa det mauellt (Set Rec = server.createobject(ADODB.recordset)) för en hämtning av poster... :) Vi menar samma sak, fast med olika ord...
------------------
PC-älskare prasslar i säven, och har malt i ryggen
www.webeye.nu
Är du med i facket?
[Redigerat av Vide den 17 aug 2000]
getrows?..
genom att använda bengt = rs.getrows(), så får du en array som ser ut precis som ditt recordset. sen kan du lägga den i ett applicationobjekt om du vill, och bara snurra igenom arrayen för att visa olika dynamiska menyval, eller rubriker i en produktkatalog till exempel.
------------------
don't follow your friends -- inflate them
Men man måste fortfarande använda recordset för att kunna använda den.
Då är ju getrows ganska värdelös.
danmagnus: visst måste du använda recordsetet för att fylla på med data, men när arrayen väl är skapad så kan du ju stänga recordsetet och bara läsa från arrayen.
------------------
don't follow your friends -- inflate them
Förstår inte varför man vill bli av med recordset:et....
Handlar det om serverresurser får man använda adUseClient, så att man kan stänga kopplingen till databasen, men fortsätta att använda recordset:et
jag kan berätta varför jag gjort det:
i utgångspunkt hade vi vårt affärssystem på en sql server v6.5, och vi hade en hel mängd sql-frågor från vår e-handelslösning. många av dessa sql-frågor var samma, och syftade till att plocka fram en katalogstruktur för vårt produktsortiment (c:a 60000 artiklar). vi vill ju inte visa rubriker som inte har några artiklar i sig.
hur som helst: dessa frågor resulterade i processer som av outgrundlig anledning låste andra processer, typ rapportkörningar o.dyl.
då satte jag upp lite kod i application onstart som läser ut hela den aktuella katalogstrukturen till arrayer, med getrows(), som jag sedan sparade ner i application-objekt. när sedan någon av mina kollegor gjorde ändringar i strukturen, som påverkade katalogstrukturen, gjorde de också en uppdatering av application-objekten.
inte nog med att vi blev av med de låsande processerna, prestandan blev oerhört mycket bättre i systemet.
därför, emission, kan man vilja undvika att jobba med recordsets.
------------------
don't follow your friends -- inflate them