Существует база данных SQLite из двух таблиц: категории(kategorii) и разделы(razdel). В категориях три поля: ID.NAM1,kateg(Nam1 уникальные значения), разделы : ID.NAM2,KATEG2(категории одинаковы для одной группы разделов).
Подключение SQLite через FDConnection1 и FDQuery1. Тут нормально.
На Form1 лежит ListBox1 в него из таблицы kategorii добавлены данные NAM1 стандартным методом .
procedure TForm1.FormCreate(Sender: TObject);
begin
try
ListBox1.Items.Clear;
FDQuery1.Close;
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('select * from kategorii');
FDQuery1.OpenOrExecute;
while not FDQuery1.Eof do
begin
ListBox1.Items.Add(FDQuery1.FieldByName('nam1').AsString);
FDQuery1.Next;
end;
except on e: exception do
Showmessage(e.ClassName + ': ' + e.Message);
end;
end;
В ListBox-e для примера Овощи, Фрукты, Страна, Звери....
Поле kateg имеет значения 1,2,3,4 соответственно. Вторая таблица для каждой категории из первой таб. имеет разделы : лук, чеснок,помидор, хрен...Поле KATEG2 для этих элементов равно 1.
Для фруктов то же четыре наименования и KATEG2=2. Остальное по такому же принципу.
Есть вторая форма: на ней тоже ListBox, Button-с процедурой Form2.Hide и FDQuery2;
Необходимо: при процедуре TForm1.ListBox1ItemClick открывалась Form2 и в ListBox2 загружались данные относящиеся только к одной категории.
С формой проблем нет:
Form2.Show;Form2.FDQuery2.Close;
Form2.FDQuery2.SQL.Clear;
Form2.FDQuery2.SQL.Add('select razdel.NAM2 from razdel WHERE razdel.kateg2='+????????
Form2.FDQuery2.OpenOrExecute;
Вопрос: как получить значение поля kateg первой таблицы что бы во втором ListBox были данные относящиеся к нажатому в первом листбоксе пункта....
Делал все то же самое но вместо ListBox1 в Form1 использовал Grid1. В нем через переменную
i:=FDQuery1.FieldByName('kateg').AsInteger ;
.......
Form2.FDQuery2.SQL.Add('select razdel.NAM2 from razdel WHERE razdel.kateg2='+IntToStr(i));
получал нужный результат и все работает, на телефоне выглядит нормально. Но меня этот вариант не устраивает. Нужно использовать ListBox на первой форме.Помогите!
Вопрос
maxfad
Существует база данных SQLite из двух таблиц: категории(kategorii) и разделы(razdel). В категориях три поля: ID.NAM1,kateg(Nam1 уникальные значения), разделы : ID.NAM2,KATEG2(категории одинаковы для одной группы разделов).
Подключение SQLite через FDConnection1 и FDQuery1. Тут нормально.
На Form1 лежит ListBox1 в него из таблицы kategorii добавлены данные NAM1 стандартным методом .
В ListBox-e для примера Овощи, Фрукты, Страна, Звери....
Поле kateg имеет значения 1,2,3,4 соответственно. Вторая таблица для каждой категории из первой таб. имеет разделы : лук, чеснок,помидор, хрен...Поле KATEG2 для этих элементов равно 1.
Для фруктов то же четыре наименования и KATEG2=2. Остальное по такому же принципу.
Есть вторая форма: на ней тоже ListBox, Button-с процедурой Form2.Hide и FDQuery2;
Необходимо: при процедуре TForm1.ListBox1ItemClick открывалась Form2 и в ListBox2 загружались данные относящиеся только к одной категории.
С формой проблем нет:
Вопрос: как получить значение поля kateg первой таблицы что бы во втором ListBox были данные относящиеся к нажатому в первом листбоксе пункта....
Делал все то же самое но вместо ListBox1 в Form1 использовал Grid1. В нем через переменную
получал нужный результат и все работает, на телефоне выглядит нормально. Но меня этот вариант не устраивает. Нужно использовать ListBox на первой форме.Помогите!
Ссылка на комментарий
17 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.