Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связывание двух таблиц mySQL по индексу 
:(
    Опции темы
DIvan
Дата 29.8.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.8.2004

Репутация: нет
Всего: нет



Господа!
Стоит тривиальная задача: связать две таблицы по индексному полю так, чтобы вместо индекса на гриде появлялся 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 поля вообще нет возможности использовать, если их в таблице больше одного?!

Большая просьба, помогите разобраться!
PM MAIL   Вверх
<Spawn>
Дата 30.8.2004, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Код непомешало бы показать.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
DIvan
Дата 30.8.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.8.2004

Репутация: нет
Всего: нет



Цитата
Код непомешало бы показать.

Дело в том, что и кода-то никакого нет. Я просто связывал две таблицы при помощи визуальных средств (в данном случае, lookup). Если вопрос о коде SQL запроса - тут все в порядке, я проверял. Что же до кода заполнения ComboBox - его могу привести:
begin
cxGrid1DBTableView1FLAG.PropertiesClass:=TcxComboBoxProperties;//Теперь это ComboBox
mySQLQuery2.SQL.Clear;
mySQLQuery2.SQL.Add('SELECT name_ru FROM `dict_country`');
mySQLQuery2.Open;
mySQLQuery2.First;
for i :=1 to mySQLQuery2.RecordCount do
begin
TcxComboBoxProperties(cxGrid1DBTableView1FLAG.Properties).Items.Add(mySQLQuery2.Fields.Fields[0].AsString);//Вот так я их и добавляю. Так в хелпе ExpressQuantumGrid прописано
mySQLQuery2.Next;
end;
end;

PM MAIL   Вверх
_hunter
Дата 1.9.2004, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



простейший ( IMHO ) вариант -- написать компонент-подобие TDBMemo ( или другой ); присобачить его DataSet' у первой таблицы и при срабатывании делать запрос на выборку из второй таблицы по индексу первой



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
vandal
Дата 2.9.2004, 14:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Quantum Grid... Не знаешь, его можно использовать как просто грид(не для БД)?
  Вверх
DIvan
Дата 9.9.2004, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 27.8.2004

Репутация: нет
Всего: нет



Цитата
Quantum Grid... Не знаешь, его можно использовать как просто грид(не для БД)?


Да, конечно. В пакете есть как БД-, так и просто компоненты. Возможностей море, см. хелп и экзамплы. Ищи перепакованый пакет на www.forum.ru-board.com smile.gif)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.