|
CRecordSet::GetRecordCount возвращает совсем не то...?
|
|||
---|---|---|---|
#18+
CDatabase db; CRecordSet* rs; rs = new CRecordSet(&db); db.OpenEx("..."); rs->Open(); int i = rs->GetRecordCount; // Ну или примерно так... А пробегать по всему своему рекордсету циклом как-то долго и неправильно... Так вот вопрос: Как стандартными функциями узнать сколько записей в рекордсете?(::MoveLast, но m_lCurrentRecord содержит тоже не не то...) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2002, 16:12 |
|
CRecordSet::GetRecordCount возвращает совсем не то...?
|
|||
---|---|---|---|
#18+
Надо сменить тип курсора у рекордсета на клиентский - обязательно до его открытия. По умолчанию рекордсет создается с серверным курсором - т.к. рекордсет не выкачивает данные полностью, а берет по одной с сервера. Поэтому он, естесственно, не знает, сколько записей. На си я с ADO не работал, т.ч. код конкретный не напишу. На VB это выглядит так: Dim recEmployees as ADODB.Recordset Set recEmployees = New ADODB.Recordset recEmployees.CursorLocation = adUseClient recEmployees.Open "SELECT * FROM TBL_Employees",... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2002, 14:00 |
|
CRecordSet::GetRecordCount возвращает совсем не то...?
|
|||
---|---|---|---|
#18+
я, пардон, не заметил... это DAO, да? С DAO тоже были такие проблемы... мне кажется, рекордсет в ДАО открывается асинхронно, поэтому так выходит... я после открытия рекордсета сразу передергивал его, MoveLast, потом MoveFirst... По-дурацки, конечно, но работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2002, 14:08 |
|
CRecordSet::GetRecordCount возвращает совсем не то...?
|
|||
---|---|---|---|
#18+
Да нет, это ODBC... И по идее, всё должно работать, тип курсора и так snapshot, хотя и с dynaset-ом тоже не работает:( Люди!!! Помогите!!! Очень критично!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2002, 14:30 |
|
CRecordSet::GetRecordCount возвращает совсем не то...?
|
|||
---|---|---|---|
#18+
Это оптимизация такая CRecordset не знает сколько записей содержит и сразу не считает количество записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2002, 09:44 |
|
CRecordSet::GetRecordCount возвращает совсем не то...?
|
|||
---|---|---|---|
#18+
Читай ремарк к этой функции: long GetRecordCount( ) const; Return Value The number of records in the recordset; 0 if the recordset contains no records; or –1 if the record count cannot be determined. Remarks Call this member function to determine the size of the recordset. Caution The record count is maintained as a “high water mark” — the highest-numbered record yet seen as the user moves through the records. The total number of records is only known after the user has moved beyond the last record. For performance reasons, the count is not updated when you call MoveLast. To count the records yourself, call MoveNext repeatedly until IsEOF returns nonzero. Adding a record via CRecordset:AddNew and Update increases the count; deleting a record via CRecordset::Delete decreases the count. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2002, 10:54 |
|
|
start [/forum/topic.php?fid=57&msg=32073513&tid=2036490]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
23ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 119ms |
0 / 0 |