|
|
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
Есть небольшая проблемка: в С++Builder создано приложение которое вытягивает данные из БД через ADODataSet, необходимо эти данные засунуть в STL-есвкий vector<>. Я делаю это так: while (!DBModule->ADODataSet->Eof) { .... занос данных в ячейку вектора... DBModule->ADODataSet->Next(); } Но данный подход работает очень долго прибольших обьемах данных (( Кто знает другой способ для более быстрого извлечения данных???? Очень нужно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 17:27 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
зачем так делать? Одни и те же данные хранить два раза в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 18:37 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
Не хранить - после переноса в вектор, я закрываю соединение и освобождаю ресурс - данные остаются только в векторе с которым и происходит дальнейшая работа (причем со всеми данными сразу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 18:52 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
ИМХО быстро не получится и надо будет бугать по датасету, можно для вектора зарезервировать память reserve. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 19:44 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
В том то и дело что тормозом выступает ADODataSet->Next() шо я вектором, шо без вектора разницы не заметно. Вопрос можно сформулировать еще так: Можно ли из ДатаСета перегнать данный одним махом (не циклом) в какойнибудь буфер в памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 20:31 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
DarkCorsair Кто знает другой способ для более быстрого извлечения данных???? Очень нужно! вы говорите ADO чтобы открывать reaodonly, forward only ? также можно посмотреть MSDN -> GetRows там читается рекордсет в массив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 20:40 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
Да доступ к базе только на чтения режим блокировки REadOnly и тип курсора ctOpenForwardOnly или ctStatic. И при таких настройках оно всеравно долго работает. За GetRow - спасибо, гляну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2006, 20:57 |
|
||
|
Перебор записей таблицы
|
|||
|---|---|---|---|
|
#18+
2: Lepsik Еще раз большое спасибо - GetRows как раз то что мне нужно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2006, 01:02 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=343&tid=2030835]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 358ms |

| 0 / 0 |
