Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.19;
Скачать: CL | DM;

Вниз

DBLookupComboBox, KeyValue, два ключевых поля... Что делать?   Найти похожие ветки 

 
Denis_P   (2002-08-28 15:54) [0]

Здравствуйте, господа!
Возникла такая вот проблемка... Нигде не смог найти подобное, так что если я сильно повторяюсь, то, пожалуйста, ногами не пинайте!...
Собственно проблема: есть DBLookupComboBox, при помощи к-рого выбирается нужное значение. Св-во DataSource не используется. Ключевых поля два. Но в KeyField можно указать только одно поле, тем не менее выбранное значение (а точнее - значения, т.к. их два) получаем через ListSource.DataSet .
А вот как сделать, чтоб DBLookupComboBox отображал нужную нам запись по _ДВУМ_ ключевым полям??? Метод ListSource.DataSet.Locate исправно работает, но как известно DBLookupComboBox не отображает перемещения по ListSource.DataSet ...
Как выйти из подобной ситуации с меньшими потерями?
Заранее спасибо! Денис.


 
Mike Kouzmine   (2002-08-28 15:55) [1]

Val1;Val2


 
Denis_P   (2002-08-28 15:59) [2]

Намёк не понял... :-(((
Если можно, то поразвёрнутей пожалуйста!.. :-)


 
Mike Kouzmine   (2002-08-28 16:34) [3]

KeyField := "Val1;Val2"


 
Denis_P   (2002-08-28 17:03) [4]

Нет. Такое не проходит... :-(((


 
Mike Kouzmine   (2002-08-28 17:06) [5]

А обязательно DBLookUp?


 
Denis_P   (2002-08-28 17:55) [6]

А какие еще есть варианты, если надо предоставить для выбора значения из таблички?
Мож я чего не знаю...


 
Mike Kouzmine   (2002-08-28 18:16) [7]

Ну, например, лукап поле в таблице. Насколько помню, там это можно.


 
Denis_P   (2002-08-28 19:18) [8]

Ну эт совсем другое.... :-(


 
Mike Kouzmine   (2002-08-28 19:23) [9]

Посмотрел несколько dblookupов, там тоже только одно :(


 
ЮЮ ©   (2002-08-29 03:08) [10]

Переделай один из dblookupов и положи в Кладовку.
Или сделай два dblookup-а, один на одно поле ("главное"), а второй на другое("подчинённое") и программно обрабатывай изменения в "главном" поле, перестраивая ListSourse.Dataset dblookup-а "подчинённого" поля


 
MW ©   (2002-08-29 10:13) [11]

Перестрой запрос:
select pkey1 || pkey2 UnionKey, DataName
from AnyTable

В KeyField := UnionKey

Получится составной ключ.
Подходит?


 
ShuraGrp ©   (2002-08-29 11:25) [12]

Используй wwDBLookupCombo (из набора ip3000) там можно хоть пять


 
Denis_P   (2002-08-29 20:01) [13]

Всем спасибо за участие и ответы!
Сщвет MW понятен, и я так пока и делаю, но есть "боязнь", что в случае большого справочника KeyField := UnionKey будет долго выполняться, по причине отсутсвия индекса... Но тем не менее!..

Уважаемый ShuraGrp, а не подскажете где это можно найти/скачать?
Денис.


 
MW ©   (2002-08-30 10:19) [14]

Если эти два ключевых поля являются Primary key, то для них поумолчанию создается unique index в качестве constraint, если нет то индекс можно и сделать. Даже по двум полям.
Если справочник фиксированной длины и не будет изменяться, то можно использовать кластер или хешированный кластер в зависимости от потребностей и объемов.
А ip3000 можно купить, только дорого насколько я помню.



Страницы: 1 вся ветка

Текущий архив: 2002.09.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
8-61221
VID
2002-05-19 19:58
2002.09.19
Нужно:


3-60956
Kurt
2002-08-27 18:25
2002.09.19
Есть QRDBText! в нем из таблицы вытаскивается числовое значение.


1-61153
Вован
2002-09-06 19:08
2002.09.19
Отображение информации на StatusBar е


14-61270
MIFI
2002-08-23 14:12
2002.09.19
нужно узнать путь до страницы каторая запустила


4-61363
Alex_i
2002-07-01 19:11
2002.09.19
Запуск Explorer через ShellExecute