Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: 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 вся ветка

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-70821
iii
2002-07-10 15:20
2002.07.22
Реестр. Как избежать ошибки?


1-70693
jonik pegas
2002-07-11 10:33
2002.07.22
Копирование потомков Tpersistent Assign-ом


1-70810
relict
2002-07-10 09:31
2002.07.22
разрешения экрана...


6-70851
Alexej
2002-05-13 08:10
2002.07.22
Определение продолжительности подключения


3-70650
R@id
2002-06-17 22:10
2002.07.22
DBGRID!