RecordSet всегда = -1

badhabit
Дата: 03.12.2009 11:22:51
Добрый день. Есть код
[SRC vbs]
Set con = CreateObJect("ADODB.Connection")
con.Provider = "Microsoft.JET4.OLEDB.4.0"
con.Open "my_db.mdb"
...
Set rs = con.execute("select * from tbl")
[/src]После execute в rs.RecordCount всегда -1. В принципе я знаю что надо поменять тип курсора на adOpenStatic, но что-то не понимаю где это сделать. Сказано, что тип курсора RecordSet'a надо менять до выполнения запроса, но я ведь вообще не создаю объект recordset я получаю его из Connection... Как быть?
qwrqwr_
Дата: 03.12.2009 11:41:55
badhabit
В принципе я знаю что надо поменять тип курсора на adOpenStatic, но что-то не понимаю где это сделать.
Метод connection.execute("...") возвращает Forward-only рекордсет, без возможности изменения его типа.
Чтобы получить р-сет другого типа, надо открывать его методом Recordset.Open(Source, Connection, CursorType, LockType, Options)
см. тут: http://script-coding.info/ADO.html
Guest33
Дата: 03.12.2009 12:45:50
Чтобы знать RecordCount надо либо ставить Con.CursorLocation = adUseClient перед Con.Open,
либо выполнять Select Count(*) from...