|
Выборка записей, отобранных set relation
|
|||
---|---|---|---|
#18+
Здравствуйте. Использую VFP 6. У меня есть таблица t_idList - список идентификаторов записей (получается на предыдущем этапе работы). И есть вторая таблица t_Records - записи с данными идентификаторами. То есть, если сделать set relation, то вторая таблица показывает все записи с этим идентификатором (он для этой таблицы не уникальный). Записей немного, их надо отобрать в курсор. Собственно, код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Можно ли придумать более быстрое решение? Вариант нерейти на VFP 9 - как крайняя мера. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 09:02 |
|
Выборка записей, отобранных set relation
|
|||
---|---|---|---|
#18+
Eugene SМожно ли придумать более быстрое решение? Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 09:34 |
|
Выборка записей, отобранных set relation
|
|||
---|---|---|---|
#18+
Не. Я, пожалуй, излишне сократил код. to Шестипалов: ваш код отберёт все записи в t_Records с идентификаторам из t_idList. Но между эндсканами есть обработка пачки полученных записей. Вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Хотя можно попробовать сначала отобрать все нужные записи в курсор а уже потом скопом обрабатывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 14:51 |
|
Выборка записей, отобранных set relation
|
|||
---|---|---|---|
#18+
Если не опишите задачу полностью, то любое решение будет бессмысленным. Ведь Вы снова скажете, что предложеное решение не учитывает какую-то еще обработку о которой Вы не рассказали. А по Вашему коду, есть несколько замечаний. 1) SET Relation - это "взгляд" на подчиненну таблицу со стороны главной. Т.е. когда Вы находитесь в рабочей области главной таблицы. Меняя "точку зрения" (текущую рабочую область) Вы, по сути, "разрываете" связь. Точнее, она перестает работать 2) Если в команде используется только FOR-условие, то такая команда сканирует всю таблицу. Поэтому не имеет никакого значения, где именно находился указатель записи на момент подачи команды. Все равно сканирование начнется с самой первой записи. Другими словами - Ваш код попросту игнорирует SET RELATION. В подобном коде настройка связи - бессмысленна и бесполезна. Она просто не работает. Обычно делают следующим образом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Настройка SET RELATION используется, в основном, для визуальных эффектов. Ну, там для отображения в Grid или в отчете. При программных модификациях эта настройка практически бесполезна. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 15:22 |
|
Выборка записей, отобранных set relation
|
|||
---|---|---|---|
#18+
Eugene S, Тогда так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Хотя ВладимирМ правильно сказал, что условия можно уточнять бесконечно :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2010, 17:59 |
|
Выборка записей, отобранных set relation
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2.
____________________________________________________ Истинный оргазм можно испытать только после нескольких часов жесткой е*ли с кодом ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2010, 09:44 |
|
|
start [/forum/topic.php?fid=41&tid=1585441]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 343ms |
total: | 477ms |
0 / 0 |