Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / ADO Recordset / 3 сообщений из 3, страница 1 из 1
10.05.2006, 19:00
    #33718765
Heart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO Recordset
Получаю запросом recordset
Получаю его мгновенно.

Потом мне надо пройти по нему и собрать данные.

авторADODB::_RecordsetPtr _rs;
TESTHR(_rs.CreateInstance(__uuidof(ADODB::Recordset)));

_bstr_t query= L"SELECT * FROM Table1";
_bstr_t strCnn = L"dgfgdfg";
_rs->PutActiveConnection(strCnn);
_rs->Open(_query, strCnn, ADODB::adOpenForwardOnly, ADODB::adLockReadOnly, ADODB::adCmdText);

while(!_rs->GetIsEOF())
{
_rs->MoveNext();
}

_rs->Close();

Примерно вот такой текст. Так вот, если я только выполняю запрос (текст без синего) - получаю результат около 2000 строчек - время пролетает незаметно. Тысячные доли секунды. А если прохожу по нему - просто movenext - то получается полсекунды. Это очень долго. Помогите, что делаю не так. Может какие то другие параметры надо подавать??
...
Рейтинг: 0 / 0
10.05.2006, 19:03
    #33718777
Heart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO Recordset
и в дополнение... если я начинаю читать еще

long aa = _rs->Fields->GetItem(0L)->GetValue().lVal;
long bb = _rs->Fields->GetItem(1L)->GetValue().lVal;
long vv = _rs->Fields->GetItem(2L)->GetValue().lVal;
long cc = _rs->Fields->GetItem(3L)->GetValue().lVal;
long dd = _rs->Fields->GetItem(4L)->GetValue().lVal;

то время просто растягивается
...
Рейтинг: 0 / 0
10.05.2006, 19:20
    #33718822
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADO Recordset
HeartПолучаю запросом recordset
Получаю его мгновенно.


Э... Не получаешь, это только запрос выполнился

Heart
Потом мне надо пройти по нему и собрать данные.
...

Так вот, если я только выполняю запрос (текст без синего) - получаю результат около 2000 строчек - время пролетает незаметно. Тысячные доли секунды. А если прохожу по нему - просто movenext - то получается полсекунды.

Естественно, а ты что хотел ? А, да, знаю...

Heart
long aa = _rs->Fields->GetItem(0L)->GetValue().lVal;
long bb = _rs->Fields->GetItem(1L)->GetValue().lVal;
. . .


Можно так ...
Код: plaintext
1.
2.
3.
4.
FieldsPtr fld = _rs->Fields;
long aa = fld->Item[0L]->Value;
long bb = fld->Item[1L]->Value;
. . .
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / ADO Recordset / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]