Тема / Topic: Ограничение на кол-во строк, извлекаемых из БД
koldin
Junior Member / Новичок
Участник № / Member № 9182
отправлено / posted
Здравствуйте! Правильно ли я понял, что по команде CALL.SQLQuery.In можно извлечь из БД не более 4096 (2^12) строк? Если это так, то имеется ли способ извлечения из БД нескольких десятков тысяч строк?
Сообщения / Posts 10 | Из / From: РФ
| IP / IP: IP адрес / IP address |
koldin
Junior Member / Новичок
Участник № / Member № 9182
отправлено / posted
Я, похоже, ошибся на порядок: последовательно можно считать 8192 (2^13) строки. Но всё равно- это меньше требуемого диапазона.
Из руководства пользователя: Извлечение строк Допустима следующая конфигурация: канал CALL.SQLQuery (INPUT, Параметр<>0) содержит единственный запрос с конструкцией SELECT. В этом случае по команде CALL.SQLQuery.In=0xFFFF выполняется запрос, после чего в CALL.SQLQuery.In может быть многократно записано число, в котором должен быть установлен бит 15 (0x8000), а биты 0-12 задают номер строки, извлекаемой из полученной выборки. Значения извлеченной строки записываются в аргументы канала CALL.SQLQuery, используемые в виде подстановок в запросе.
Сообщения / Posts 10 | Из / From: РФ
| IP / IP: IP адрес / IP address |
отправлено / posted
Здравствуйте! Верно, есть ограничение на количество считываемых строк одним запросом. Если Вам необходимо считать "несколько десятков тысяч строк", то это возможно сделать несколькими запросами.
Если необходимо иметь доступ одновременно к такому количеству строк, то это решается использованием нескольких Call.SQLQuery, которые будут запрашивать определенное количество строк.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
koldin
Junior Member / Новичок
Участник № / Member № 9182
отправлено / posted
Принцип действий ясен! Дальше буду самостоятельно разбираться. Большое спасибо!
Сообщения / Posts 10 | Из / From: РФ
| IP / IP: IP адрес / IP address |