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

Вниз

TDBLookupCombobox замучил   Найти похожие ветки 

 
Солер ©   (2002-06-30 08:57) [0]

Уважаемые Мастера помогите решить проблему.
Есть DBGrid с таблицей, TDBLookupComboBox1 и несколько TDBEdit в
которые выводятся данные через TDBLookupComboBox. Всё работает хорошо.
Но при добавлении TDBLookupComboBox2 и к нему соответствующих TDBEdit,
начинаются затруднения: При выборе значения в TDBLookupComboBox1 автоматически
меняется значение TDBLookupComboBox2 на аналогичное TDBLookupComboBox1
и соответственнои данные в TDBEdit.Т.е. если в TDBLookuCombopBox1
выбираем фамилию Ивановто в TDBLoorukComboBox2 автоматически тоже
выскакивает Иванов, если меняем значение в TDBLookupComboBox2 - автоматически
меняется TDBLookupComboBox1. Как сделать,чтобы они работали автономно.
TDBLookupComboBox1 выбирал из базы данные своей строки, а
TDBLookupComboBox2 своей и также для TDBLooupComboBox3,TDBLookupComboBox4 и т.д.
Такая же история с TDBCombobox и TDBListBox
Спасибо.


 
VasilyNew ©   (2002-06-30 12:59) [1]

НИКАК!!!
TDBLookupComboBox отбражает значение поля текущей строки.
Lookup-ит из другой таблицы ( ListSource) значение ( ListField) по, скажем, ссылочному индексу и записывает ( KeyField) в поле ( DataField) таблицы набора данных DataSource.
Другими словами в наборе данных DataSource в текущую строку поля DataField записывается ссылка на значение поля ListField другого набора данных ListSource.
А поскольку в поле отображается лишь единая запись, то ни о какой "автономности" TDBLookupComboBox(1,2..n) и речи не может быть.


 
Lola ©   (2002-06-30 13:05) [2]


> VasilyNew © (30.06.02 12:59)
прав. Вообще советую поменьше использовать прямой доступ к записям базы: одно неверное движение - и данные уже изменены, а пользователь и не заметил как. Лучше используй TComboBox и TListBox, код будет длиннее, зато работать корректнее.


 
VasilyNew ©   (2002-06-30 13:06) [3]

НИКАК!!!
TDBLookupComboBox отбражает значение поля текущей строки.
Lookup-ит из другой таблицы ( ListSource) значение ( ListField) по, скажем, ссылочному индексу и записывает ( KeyField) в поле ( DataField) таблицы набора данных DataSource.
Другими словами, в наборе данных DataSource в текущую строку поля DataField записывается ссылка на значение поля KeyField, а отображается в TDBLookupComboBox ListField другого набора данных ListSource.
А поскольку в поле отображается лишь единая запись, то ни о какой "автономности" TDBLookupComboBox(1,2..n) и речи не может быть.
ЧИТАТЬ ЭТО !!! В предыдущем пояснении ошибка


 
Cobalt ©   (2002-06-30 13:06) [4]

Попробуйте использовать разные DataSet-ы


 
VasilyNew ©   (2002-06-30 13:23) [5]

DataSet-ы можно, но что это тогда за приложение получится если к одному и тому же набору данных будет несколько TTable или TQuery подключено. Да и полная путаница получается. Важно знать задачу которую решает "Солер", тогда и решение можно найти более изящное.


 
VasilyNew ©   (2002-06-30 13:28) [6]

>>>Lola © (30.06.02 13:05)
Вы предлагаете в TListBox каждый раз закачивать данные требуемого поля из другой таблицы. Это возможность... Но!
Чаще всего в таблице (Т1), в которую Вы записываете значение из другого набора данных (Т2) содержится только индекс (ссылка) на запись последнего. Это дает возможность автоматически изменять значения данных в Т1 при изменении его в Т2. Главное, чтобы индекс записи в Т2 оставался неизменным.
Индексы в Т2, как правило, в локальных БД определяются типом поля Autoincrement, а в Client|Server – генераторами и триггерами.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
3-70640
TAN_K
2002-07-01 14:51
2002.07.22
РАБОТА С БАЗАМИ ДАННЫХ


7-70930
YY
2002-04-30 18:51
2002.07.22
Ламерский вопрос по встроенному Assembler у


1-70688
Question
2002-07-09 08:59
2002.07.22
Ещё раз Screen.DataModuleCount


1-70811
Malax
2002-07-10 15:44
2002.07.22
Мышь


14-70884
cpp
2002-06-25 09:36
2002.07.22
Нужен компонент для работы с графикой (или алгоритмы)