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

Вниз

ComboBox для отображения связанных таблиц   Найти похожие ветки 

 
stal67   (2002-03-30 20:21) [0]

Пожалуйста, помогите чайнику. Пропадаю.
Для вас - это элементарно. Мне пока тяжело.
Использовал раньше для отображения связанных таблиц всегда DBGrid`ы. Проблем - никаких.Сейчас вот застрял.
Заполняю ComboBox текстовым полем родительской таблицы, где ключевое поле - LongInteger. Как в DBGrid, отражать подчиненные
ей (родительской таблице) поля дочерней таблицы? Каким должен быть текст запроса и как осуществить подстановку текстового поля , используя числовое ключевое поле?
Спасибо. Огромное.


 
AlexVS   (2002-03-31 08:26) [1]

Запрос имеется в виду использование TQuery ?
Тогда примерно так:

Select * from table
WHERE Field= :FieldValue

Поиск в родительской таблице:
Table1.Locate("StrField",ComboBox1.Text,[])

потом присваивай значение параметру:
Query1.ParamByName("FieldValue").Value:=Table1.FieldByName("LongField").Value;
Выполяй Select
Query1.Sql.Clear;
Query1.Sql.Add("Select * from table WHERE Field= :FieldValue");
Query1.Open;


 
Andrus   (2002-03-31 12:52) [2]

Помоему удобнее использовать при заполнении ComboBoxa:

ComboBox1.Items.AddObject("Текстовое поле родителя",TObject(Ключевое поле родителя));

И потом в ComboBox1.OnChange()
ChildQuery.Close;
ChildQuery.Params[0].AsInteger:=Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
ChildQuery.Open;


 
Lusha   (2002-03-31 13:00) [3]

Создать LookUp поле?


 
stal67   (2002-03-31 16:38) [4]

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

1.// Заполняю ComboBox текстовым полем запроса q1 с полями
ID_GROUP (ключевое поле)
GROUP_NAME (текстовое поле)
procedure Tform1.FormCreate(Sender: TObject);
begin
q1.SQL.Clear;
q1.SQL.Add("SELECT * FROM GROUP_NAME ");
q1.Open;
q1.First;
ComboBox.Clear;
while not q1.Eof do
begin
ComboBox.Items.Add(q1GROUP_NAME.AsString);
q1.Next;
end;
ComboBox.ItemIndex:=0;
end;

2. // Сейчас нужно отобразить по выбору в ComboBox,подчиненные запросу q1 данные запроса q2 (по полю ID_GROUP) с полями :
ID_GROUP (внешний ключ, числовое поле)
ТОV_NAME (текстовое поле)

procedure Tform1. ComboBoxChange(Sender: TObject);
begin
// Большое спасибо за код!!!
end;


 
Andrus   (2002-03-31 17:07) [5]

procedure Tform1.FormCreate(Sender: TObject);
begin
q1.SQL.Clear;
q1.SQL.Add("SELECT * FROM GROUP_NAME ");
q1.Open;
q1.First;
ComboBox.Clear;
while not q1.Eof do
begin
// ComboBox.Items.Add(q1GROUP_NAME.AsString);
ComboBox.Items.AddObject(q1GROUP_NAME.AsString,
TObject(q1ID_GROUP.AsInteger));
q1.Next;
end;
ComboBox.ItemIndex:=0;
end;

q2.SQL.text:="select * from дочерняя таблица where ID_GROUP=:ID"



procedure ComboBox.OnChange(Sender:TObject);
begin
q2.close;
q2.parambyname("ID").AsInteger:=Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]));
q2.open;
end;




 
stal67   (2002-03-31 19:47) [6]

Безмерно благодарен, Andrus, все работает !
Спасибо так же всем, кто откликнулся, чтобы помочь!



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

Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-69873
ymin
2002-04-09 11:21
2002.04.22
Как проще всего распечатать StringGrid? Кстати она помещается на.


7-70039
Devid
2002-01-27 15:47
2002.04.22
Как из дельфи позвонить на другой комп


3-69696
kvcomp
2002-03-30 16:37
2002.04.22
Помогите, пожалуйста!


6-69965
Андрей Сенченко
2002-01-25 14:25
2002.04.22
Проверить доступность сетевого диска


3-69685
Kuzmich
2002-03-29 14:14
2002.04.22
Подключение к СУБД из Веб-сервиса





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