Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
14-70907
kosyak
2002-06-24 20:57
2002.07.22
редактор


1-70762
Doctor Deejay
2002-07-02 21:54
2002.07.22
Меню, созданное динамически


3-70632
Loco
2002-06-30 14:34
2002.07.22
базы Foxpro


7-70935
Gnom
2002-05-01 17:32
2002.07.22
Как наложить семафор?


1-70735
Fiend
2002-07-11 16:54
2002.07.22
Handles и Named Pipes





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский