Главная страница
    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.008 c
1-69792
lipskiy
2002-04-09 23:36
2002.04.22
Как перекрыть стандартные цвета виндов?


1-69784
$hiC0
2002-04-10 11:25
2002.04.22
Print и PrintDialog


14-70026
Esa
2002-03-18 13:40
2002.04.22
AccessViolation


1-69912
CrazyXP
2002-04-08 20:19
2002.04.22
Несколько вопросов


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