Здравствуйте уважаемые постетители форума!
Хотелось бы вновь вернуться к субж.
А именно вот такая проблема:
Имеется некоторая таблица (Primary) содержащая скажем два поля:
Code - шифр
Title - строковая
Пусть для обоих полей имеются соотвествующие ключи. Причем по Code - Primary, автонумерация, уникальное.
С ней в связи 1 ко многим состит другая таблица:
Code - шифр из первой.
RazdelCode - некоторый шифр раздела.
Задача: Вывести записи первой таблицы в BrowseBox'е отсортированному по Title в соотвествии с определенным значением RazdelCode из второй таблицы.
Каким образом данную задачу можно решить оптимальным образом ?
Пробовал два варианта, но скорость не устраивает в обоих случаях:
1) По ключу для RazdelCode в таблице 2 перебираются все записи, соотвествующие выбранному значению. По связи из таблицы 1 берутся значения Title.
После этого использовал ORDER по полю Title. Быстро работает для малого кол-ва записей. При большом кол-ве (>1000) значительная задержка.
2) Перебираются все записи таблицы 1, по связи с таблицей 2 через FILTER для RazdelCode отбираются нужные записи.
Здесь, наоборот, когда много записей - то все работает быстро.
Однако, если в таблице 1 записей много, а в выбранном разделе записией мало, то задержка, существенная ( нужно быстрее).
Какие еще могут быть варианты ?
--
Mfg,
Anton mailto:ustim@web.de
Написал: ClaList(2)
СНОВА - Сортировка BrowseBox'a
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Гость
Сообщение Гость »
Я таки не понял, как нужно отсортировать записи?
+Title, +RazdelCode или +RazdelCode, +Title???
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
+Title, +RazdelCode или +RazdelCode, +Title???
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
Гость
Сообщение Гость »
+RazdelCode, +Title
--
Mfg,
Anton
Добавь Title во вторую таблицу, и CASCADE на UPDATE по Title из первой на вторую. Ну и ключи соответствующие. Тогда у тебя во второй таблице будет ключ +RazdelCode, +Title, который решит проблему со скоростью выборки.
Правда при модификации Title из первой таблицы, возможны тормоза.
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
--
Mfg,
Anton
Добавь Title во вторую таблицу, и CASCADE на UPDATE по Title из первой на вторую. Ну и ключи соответствующие. Тогда у тебя во второй таблице будет ключ +RazdelCode, +Title, который решит проблему со скоростью выборки.
Правда при модификации Title из первой таблицы, возможны тормоза.
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
Гость
Сообщение Гость »
Ну, в принципе, тоже вариант.
Я думал о создании некоего индекса по Title - и использование его для второй таблицы. Тогда можно было бы обойтись лишь некоторым индексным полем во второй таблице. Но как это практически реализовать ?
--
Mfg,
Anton
Мне вот что странно. Получается, что несколько RazdelCode с одинаковым наименованием, могут соответствовать нескольким Title?
OldStav
Написал: ClaList(2)
Я думал о создании некоего индекса по Title - и использование его для второй таблицы. Тогда можно было бы обойтись лишь некоторым индексным полем во второй таблице. Но как это практически реализовать ?
--
Mfg,
Anton
Мне вот что странно. Получается, что несколько RazdelCode с одинаковым наименованием, могут соответствовать нескольким Title?
OldStav
Написал: ClaList(2)
Гость
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)