Главная страница
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.01 c
1-61148
Losyara
2002-09-06 11:42
2002.09.19
Компоненты


1-61034
koks
2002-09-05 12:33
2002.09.19
долгий процесс...


7-61335
Stanislav SM
2002-07-09 11:03
2002.09.19
Уваж. мастера. Как считать нажатие кнопки мыши (COM port)


3-60933
maxim2
2002-08-28 10:05
2002.09.19
Не отображаются русские символы


4-61362
antonK
2002-07-24 12:51
2002.09.19
запуск DOS программы в Win95. окно не закрывается!