Läste följande i Artiklar & kurser: När du skriver "set rst =" så skapas ett nytt objekt - i detta fall ett recordset. Samtidigt är regeln att cursor location måste sättas INNAN man öppnar recordsetet och därmed går det inte att försöka få på cursor location när recordsetet redan är skapat och innehåller data. Om du vill använda Commandobjekt för att köra din fråga men sätta properties på ditt recordset ändå gör du så här: Tack för svaret !ADO Command.Execute
Använda ADO's cursortyper, cursorlocation
och disconnected recordset
2000-10-17 av Pelle Johansson, Stockholm
....
Eftersom forward-only cursorn endast tillåter att du rör dig framåt i recordsetet tillåts inte heller att du använder dig av .RecordCount funktionen, den returnerar då -1 i antalet poster. Det bör även tilläggas att om du inte anger någon cursortyp så är detta default. Samma sak gäller om du öppnar ditt recordset med .Execute eller Connection objektet samt Command objektet.
? Innebär detta att man EJ kan påverka vilken typ av cursor man vill ha
när man exekverar t.ex:
Set rst = Command.Execute
utan alltid får Forward-only (adOpenForwardOnly) ?
Tacksam för svar
/Göran
Sv: ADO Command.Execute
Hoppas du hängde med där. Kursen du läste visar detta problem. Dock kan du använda :
con.cursorlocation = adUseClient
con.open
rst.open sql, con,,, adCmdText
eller
rst.open sql, con,,, adCmdTable
och då kan du före dessa satser sätta cursorlocation på både connection och recordset innan det öppnas..
/PelleSv: ADO Command.Execute
Set con = New ADODB.Connection
Set cmd = New ADODB.Command
Set rst = New ADODB.Recordset
' Initalisera och öppna connection
con.X = ...
con.Open
'Init command med parametrar etc
cmd.X = ...
'Init recordset
rst.CursorLocation = ...
rst.X = ...
'Fyll recordset
rst.Open cmd, conSv: ADO Command.Execute
Innebär detta att om jag exekverar en
.Execute (Connection eller Command)
======
inte kan påverka vilken cusor typ som skall användas utan alltid får Forward-only (adOpenForwardOnly) ?
/Göran