Så här lärde man sig på webstudio att man skulle göra:
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM forum WHERE msgID=" & msg
RecSet.Open Visa, Connect, 3, 3
Men jag vet att man kan göra på något bättre sätt också
Visa = "SELECT * FROM forum WHERE msgID=" & msg
Connect.Execute(Connect)
Men hur skriver jag ut posterna egentligen. Det är bara en rad jag ska ha i tabellen...och där det står Select *...blir det en optimering om man skriver fältnamnen där?
Om jag hämtar data från en specifik rad och sen direkt efter det ska hämta från en annan. Måste jag stänga ner RecSet-objektet och skapa det igen med "Set Recset"?
Jag var lite otydlig där...ska försöka visa i ett exempel...
strSQL = "SELECT * FROM forum WHERE msgID=" & Msg
Set RecSet = Connect.Execute(strSQL)
RecSet.Close
Set RecSet = nothing
strSQL = "SELECT * FROM forum WHERE msgID=" & Msg2
Set RecSet = Connect.Execute(strSQL)
RecSet.Close
Set RecSet = nothing
Jag antar att jag inte behöver stänga ner RecSetet för att i sin tur skapa det igen i nästa hämtning...eller? Du nämnde nåt om återanvändning...ska jag bara ta bort set på andra hämntningen kanske?
När jag skriver ut inläggen till ett huvudinlägg skriver jag gör jag hämtningen så här:
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM forum WHERE Thread_ID=" & Mail & " ORDER BY Thread_ReplyOrder"
RecSet.Open Visa, Connect, 3, 3
Do While Not RecSet.EOF
response.write "<TD class=text2 width=" & RecSet("Thread_Level") & 0 & " nowrap> etc etc....:)
RecSet.MoveNext
Loop
Jag antar att jag ska använda mig av en array istället för det är en del response.write eller? Ser det annars bra ut?
Att jag hämtar in alla värden in i en array så att jag kan stänga ner db-kopplingen så snabbt som möjligt...och använda mig av array-värdena när jag gör mina response-write rader...eller tänker jag helt fel?
Nä, finns ett fel, om du inte ska lägga till nya poster med detta recordset.
Om du inte behöver lägga till poster utan bara hämta ut alla poster ska du inte använda dig av:
RecSet.Open Visa, Connect, 3, 3
Utan av:
RecSet.Open Visa, Connect, 3, 1
[r]
och behöver du inte räkna posterna så räcker denna öppning:
RecSet.Open Visa, Connect, 0, 1
fast det bästa är att skapa recsetet genom conn objektet och sedan hämta ut med getrows()
Visa = "SELECT * FROM forum WHERE msgID=" & msg
Set objRS = Connect.Execute(Visa)
If Not objRS.EOF Then
arrRecords = objRS.GetRows()
End If
Set objRS = Nothing
cya,
PatrikB
268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91