![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TreeView и SQL [D5, IB5.x]
novi_chok © (2002-06-30 18:23:00)Уважаемые Мастера, прошу помощи!
Есть два запроса
Query1 мастер :
SELECT ID_X, NAME_X
(Заполняю TreeView столбцом NAME_X)
Query2 деталь:
SELECT ID_X, ID_Y, NAME_Y
WHERE ID_X = :ID_X
(Отображается в гриде)
Каким образом по выбору TreeView NAME_X
отображать в гриде подчиненные записи
запроса Query2.
Спасибо за помощь!
Севостьянов Игорь (2002-07-01 17:10:00) [1]Sorry забыл вот здесь
Query2.SQL.Add(Format("SELECT ID_X, ID_Y, NAME_Y WHERE ID_X=%s",[QuatedStr(Node.Data)]));
вот так
Query2.SQL.Add(Format("SELECT ID_X, ID_Y, NAME_Y WHERE ID_X=%s",[QuatedStr( PChar(Node.Data) )]));
Севостьянов Игорь (2002-07-01 17:07:00) [2]Например так
TreeNode.Data:=Pointer(Query1.FieldByName("ID_X").AsString)
Query2.SQL.Add(Format("SELECT ID_X, ID_Y, NAME_Y WHERE ID_X=%s",[QuatedStr(Node.Data)]));
Но лучше по числовому полю (а точнее по Primary Key (ID))
MikeFW (2002-07-01 16:21:00) [3]Уважаемый Polevi
а если у меня две таблицы связаны не по числовому полю, а по полю типа String, подскажите, пожалуйста, как правильно написать эквивалентные выражения:
> TreeNode.Data:=Pointer(Query1.FieldByName("ID_X").AsInteger)
> Query2.SQL.Add(Format("SELECT ID_X, ID_Y, NAME_Y WHERE ID_X=%d",[Integer(Node.Data)]));
novi_chok (2002-07-01 09:52:00) [4]Но все равно не работает.
Выдает сообщение General SQL error
и что-то насчет выражения WHERE.
И еще здесь нет выражения FROM, это так
и нужно? Но не работает и так.
С уважением, novi_chok.
novi_chok (2002-07-01 09:28:00) [5]Огромное спасибо, Polevi!
Polevi (2002-07-01 07:45:00) [6](Заполняю TreeView столбцом NAME_X)
TreeNode.Text:=Query1.FieldByName("NAME_X").AsString
TreeNode.Data:=Pointer(Query1.FieldByName("ID_X").AsInteger)
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add(Format("SELECT ID_X, ID_Y, NAME_Y WHERE ID_X=%d",[Integer(Node.Data)]));
Query2.Open;
end;
novi_chok (2002-06-30 21:57:00) [7]Недостаток опыта не позволяет
понять с каким событием это
увязать. Быть может, подробнее!
Окажете неоценимую помощь.
Спасибо!!!
Polevi (2002-06-30 18:49:00) [8]TreeNode.Data:=Pointer(Query1.FieldByName("ID_X").AsInteger)