Форум: "Базы";
Текущий архив: 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.006 c