Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Связывание двух таблиц mySQL по индексу


Автор: DIvan 27.8.2004, 12:44
Господа!
Стоит тривиальная задача: связать две таблицы по индексному полю так, чтобы вместо индекса на гриде появлялся ComboBox со значениями из второй таблицы.
Использую mySQL server и Delphi 7 с установленными компонентами DAC for mySQL + Express QuantumGrid 4.
Первая мысль была связать таблицы по lookup`у, используя обычный DBGrid и FieldsEditor таблицы БД. Все работает, но сильно тормозит в момент загрузки формы.
Вторая мысль - использовать свойство QuantumGrid , позволяющее придать любому столбцу вид того же LookupComboBox. Все работает, но тормозит при попытках сортировки по lookup-полям. Чем полей больше, тем тормоза сильней. Всего полей 12 + 5 lookup.
Была попытка также связать таблицы, пользуясь первым методом, но применяя для отображения QuantumGrid. Теперь тормоза на входе в форму (около 5 сек.), зато сортировка и вообще работа с таблицей стала работать нормально.
Последняя мысль - использовать SQL запросы. Таблица формируется мгновенно, но мен нужна еще возможность редактирования, в т.ч. подстановка из связанных словарей. Тормоза наступили (а как же без них? )) в момент заполнения списка ComboBox, в который я превратил индексное поле таблицы.

Так что же это получается? Или я где-то не прав (на что и надеюсь), или lookup поля вообще нет возможности использовать, если их в таблице больше одного?!

Большая просьба, помогите разобраться!

Автор: Secandr 27.8.2004, 16:15
SQL
SELECT FROM table_a LEFT JOIN table_b ON table_a.id=table_b.id

Автор: DIvan 27.8.2004, 18:49
Цитата(Secandr @ 27.8.2004, 16:15)
SQL
SELECT FROM table_a LEFT JOIN table_b ON table_a.id=table_b.id

Все правильно, но ведь я об этом писал:
Цитата
Последняя мысль - использовать SQL запросы. Таблица формируется мгновенно, но мен нужна еще возможность редактирования, в т.ч. подстановка из связанных словарей. Тормоза наступили (а как же без них? )) в момент заполнения списка ComboBox, в который я превратил индексное поле таблицы.


Проблема в том, что в момент заполнения ComboBox` ов значениями из связанной таблицы наступают тормоза порядка секунд. Это неприемлимо.

Автор: Secandr 28.8.2004, 15:57
тогда вопрос к языку прграмирования.

Автор: DIvan 28.8.2004, 18:20
Цитата(Secandr @ 28.8.2004, 15:57)
тогда вопрос к языку прграмирования.

2Secandr: Ну нельзя же с таким умным (и зеленым) лицом столь нетривиальные вещи говорить biggrin.gif

Автор: Secandr 29.8.2004, 08:18
А куда деваться, я php,perl знаю, там такие запросы работают хорошо, правда и ComboBox`ов там нет.

Я думаю, лучше задать вопрос в ветке по дельфи.

Автор: DIvan 29.8.2004, 14:38
Спасибо в любом случае!

Автор: Kesh 30.8.2004, 08:09
А попробуй EhLib - там тоже есть LookUp - работает вроде быстро...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)