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

Вниз

DBLookupComboBox   Найти похожие ветки 

 
coral   (2005-12-01 17:15) [0]

Как работать с DBLookupComboBox?


 
Ega23 ©   (2005-12-01 17:17) [1]

Нужен набор данных. Прописываешь его в ListSource. Определяешь поле KeyField и ListField.


 
coral   (2005-12-01 17:23) [2]

А как потом обратиться к этим полям уже в комбобоксе? У меня в базе есть таблица Учеников и Тестов. В combo я отображаю названия тем тестов. Мне нужно по выбору темы, чтобы в грид отобрадились поля учеников, которые сделали этот тест. как быть?


 
Ega23 ©   (2005-12-01 18:01) [3]

Ты путаешь тёплое с мягким.
Но что е тебе подсказал - это работа на уровне наборов данных. Так называемая Master-Detail связь.


 
coral   (2005-12-01 18:03) [4]

То есть в зависимости от выбранного в combo поля я никак не смогу отображать данные в гриде?


 
Ega23 ©   (2005-12-01 18:11) [5]

Почему? Сможешь.
Вот пример.

Сначала БД

Create Table Master
(
 MasterID int
 MasterName varchar
)
Create Table Detail
(
DetainlID int,
MasterID int,
DetailName varchar
)


Предположим, у тебя такая структура данных.
Берёшь Delphi, создаёшь новый проект, делаешь коннект к БД (не знаю, какими компонентами доступа пользуешься).
Кладёшь 2 потомка TDataSet (например, TADOQuery или TQuery - в зависимости от того, какой механизьм доступа к данным) и 2 TDataSource.
В первом DataSet"е в SQL пишешь "Select * from MasterTable"
Во втором - "Select * from DetailTable where MasterID=:MasterID"
И для второго DataSet в свойство DataSource прописываешь первый DataSource (который на первый DataSet смотрит).
Кидаешь на форму 2 DBGrid"а, первому присваиваешь dataSource1, второму - dataSource2.
Открываешь оба DataSet"а. Кликаешь по первому гриду. Наслаждаешься.

То же самое справедливо и для TDBLookupCombo.


 
coral   (2005-12-01 18:28) [6]

Ну ты замутил! а если я из Access заполню обычный combo столбцом одной из таблиц, например:
begin
 with adotable1 do
 begin
   open;
   while not EOF do
   begin
     ComboBox1.Items.Add(FieldByName("Òåìà").AsString);
     next;
   end;
 end;
end;

а теперь надо как-то обращаясь к этим записям, делать выборку и кидать все в грид... вот только вопрос как?


 
Ega23 ©   (2005-12-01 18:29) [7]


> а теперь надо как-то обращаясь к этим записям, делать выборку
> и кидать все в грид... вот только вопрос как?


Вот для того, чтобы не было мучительного "Как?" и разработан компонент TDBLookupCombo.


 
coral   (2005-12-01 18:37) [8]

Ок, уговорил! вернемся к твоему примеру! как я понимаю, ты предлагаешь чтобы по выбору поля в одной таблице (гриде), в другой таблице отображались бы сведения по запросу к другой таблице так?


 
Ega23 ©   (2005-12-01 18:47) [9]

Вместо первого грида ты можешь как раз TDBLookupCombo использовать.
Пойми, это всего лишь графическое представление набора данных. И переоткрытие подчинённого запроса будет происходить тогда, когда у набора данных передвинется курсор. А от чего он передвинется - в гриде новую запись выбрали, TDataSet.Next сделали или в LookupCombo новую запись выбрали - это дело десятое.


 
coral   (2005-12-01 19:11) [10]

Ты не поверишь, но ниче не выходит... при выборе записи из combo в гриде просто курсор ставится на запись, но никакого запроса и тем более его выполнения не происходит...


 
Ega23 ©   (2005-12-02 11:01) [11]


> Ты не поверишь, но ниче не выходит... при выборе записи
> из combo в гриде просто курсор ставится на запись, но никакого
> запроса и тем более его выполнения не происходит...
>


Подзапрос должен быть связан с набором данных, на которых смотрит твой комбо.



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

Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.025 c
2-1133635834
tigrenok
2005-12-03 21:50
2005.12.18
Проблема с названиями компонентов(возникла снова)


14-1130933749
Анонимщики
2005-11-02 15:15
2005.12.18
Чемпионат сайта по шахматам


4-1129270424
Чапаев
2005-10-14 10:13
2005.12.18
Создать property sheet page


14-1132214544
ЯВ
2005-11-17 11:02
2005.12.18
комп-щик на нары...


1-1132828478
Дмитрий_05
2005-11-24 13:34
2005.12.18
Заменить запущенную библиотеку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский