![]() |
#7 |
Administrator
|
Все гораздо проще.
Есть у датасорса в квери (объект QueryBuildDataSource) свойство fetchMode. По умолчанию оно имеет значение QueryFetchMode::One2Many. Но его можно поставить в значение QueryFetchMode::One2One. Смысл следующий. Допустим у нас есть запрос из двух таблиц - шапки и строк. Если fetchMode = QueryFetchMode::One2Many, то getNo(шапки) возвратит курсор шапки только один (первый) раз для всех строк данной шапки. Т.е. это будет выглядеть так: X++: while (queryRun.next()) { = queryRun.getNo(1); do { = queryRun.getNo(2); .................... // код } while (queryRun.next()); } Т.е. при каждом вызове queryRun.next() оба курсора будут заполнены данными. Я не знаю как это связано с производительностью и зачем такая логика. Но она (логика) заложена именно такая.
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 18.02.2009 в 18:11. |
|
|
За это сообщение автора поблагодарили: kashperuk (2), Logger (4), pbcio (0), AP-1055D (1). |
Теги |
query, queryrun, выборка, запрос (query) |
|
|