Вниз
Скачать: CL | DM;

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

← →
novi_chok   (2002-06-30 18:23) [0]

Уважаемые Мастера, прошу помощи!
Есть два запроса
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.

Спасибо за помощь!


← →
Polevi ©   (2002-06-30 18:49) [1]

TreeNode.Data:=Pointer(Query1.FieldByName("ID_X").AsInteger)


← →
novi_chok   (2002-06-30 21:57) [2]

Недостаток опыта не позволяет
понять с каким событием это
увязать. Быть может, подробнее!
Окажете неоценимую помощь.
Спасибо!!!


← →
Polevi ©   (2002-07-01 07:45) [3]

(Заполняю 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-07-01 09:28) [4]

Огромное спасибо, Polevi!


← →
novi_chok   (2002-07-01 09:52) [5]

Но все равно не работает.
Выдает сообщение General SQL error
и что-то насчет выражения WHERE.
И еще здесь нет выражения FROM, это так
и нужно? Но не работает и так.
С уважением, novi_chok.




← →
MikeFW   (2002-07-01 16:21) [6]

Уважаемый 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)]));




← →
Севостьянов Игорь ©   (2002-07-01 17:07) [7]

Например так
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))


← →
Севостьянов Игорь ©   (2002-07-01 17:10) [8]

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) )]));



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
3-70631
Sergey_
2002-07-01 14:58
2002.07.22
Здравстуйте. Подскажите пожалуйста как сязать DbGrid с БД Oracle


1-70784
Fiend
2002-07-10 09:40
2002.07.22
Service ADO


1-70788
EugenCFG
2002-07-10 10:46
2002.07.22
Здраствуйте ещё раз...


1-70686
tsarevep
2002-07-10 02:41
2002.07.22
Передать параметр первой копии программы


14-70904
shagen
2002-06-25 10:02
2002.07.22
ИскИн




   Наверх