Re[3]: Проблемы с понимаением.
От: The Lex Украина  
Дата: 24.10.01 05:50
Оценка:
Здравствуйте Saddam, Вы писали:

S>Пардрон, BCB.

Ну, я что-то такое подозревал...

S>Собственно, это значит отношение "один ко многим" и его реализация в Inprise-продуктах.

S>Днло в том, что в Imprise-продуктах есть понятие Master DataSet и Detail DataSet, соответсвенно с угазанием ключевых полей по которым производится связка. Насколько я понял — здесь это можно реализовать толкьо парамсетризованными фильтрами.
Ну, я что-то такое подозревал. Насколько я понимаю, подобные механизмы все же реализованы средствами самих СУБД, точнее систем, которые собственно и служат "прослойкой" между самой БД и пользователем — это, например, Visual FoxPro или тот же Delphi. Или какой-то компонент ActiveX. А может я просто не знаю, как это реализовать средствами ODBC.

Суть, насколько я понимаю, в том, чтобы при перемещении по одному курсору другой динамически формировался в соответствии со связью "один ко многим". Интересно, конечно, как именно это реализовано в том же Delphi, но я, пожалуй, не вижу другого способа, кроме как каждый раз перегружать дочерний курсор. А может это все же уже реализовано: попробуйте копать в сторону библиотеки курсоров ODBC.

TL>>Курсор в принципе имеет записей от нуля до в общем бесконечности. Что означает "подфенчивать по ходу пьесы"?

S>Это значит, что когда я делаю MoveNext, на сколько я понял, ODBC будет запрашивать сервер о следующем поле. Т.е. — 1операция=1запрос, что, как мне кажется несколько напряжно и для сети, и для сервера.
Вы поняли совершенно правильно: в обычном режиме MoveNext(...) будет идти к драйверу, а тот может к серверу и говорить "еще". Если больше нет — значит выбрали все строки курсора. Но можно сделать и несколько иначе: если Вам точно нужно загрузить весь курсор и Вы опасаетесь за излишнюю нагрузку на сеть, Вы можете заставить ODBC грузить записи блоками. Где смотреть? Один момент... Ну да: SQLSetSTMTAttr(...), а именно атрибуты SQL_ATTR_ROW_BIND_TYPE, SQL_ATTR_ROW_ARRAY_SIZE и тому подобные. В MSDN об этом сказано очень много и вполне доходчиво. Кстати, MFC также поддерживает этот механизм в своем CRecordset, правда, не на уровне Колдунов...

S>Появился еще один вопрос: есть-ли ODBC-драйвер для IB Database кроме Intersolv-а? А-то у меня не получилось его заставить работать в режимах кроме forvardOnly :(.

Это, скорее всего, к самому InterBase... Кстати, никто не знает каких-то официальных координат InterBase или как там сама контора называется?
Голь на выдумку хитра, однако...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.