сем привет, помогите пожалуйста разобраться в чем ошибки. Пишу приложение для бд, в кратце суть - небольшая система управления персоналом на предприятии, структура подразделений представлена в виде древовидной иерархии, просмотр данных о сотрудниках реализован как для отдельного подразделения, так и в виде полного списка.
Так вот есть у меня хранимая процедурка которая отвечает за формирование иерархии подразделений и процедурка в самом приложении которая выстраивает иерархию в TreeView, но чето гдето косячит, и выстраиваются потомки только 1го подкорневого элемента, остальных дельф не видит. Вот хранимая процедура(список подразделений хранится в таблице DEPS):
Код:
1 2 3 4 5 6 | begin
FOR SELECT DeptFullName FROM DEPS
WHERE ParentDeptID =:pDeptID
INTO :rDeptFullName
DO SUSPEND;
end
|
Вот процедура в приложении:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | procedure TForm1 . SetSelection;
begin
Screen . Cursor := crSQLWait;
with datamodule1, sidsStaff, treeview1 . Selected do
begin
Close;
DataSet . CommandText := 'select * from FullList' ;
if AbsoluteIndex > 0 then
begin
datamodule1 . sidsDeps . Locate( 'DeptFullName' , Text,[]);
DataSet . CommandText := DataSet . CommandText+ ' WHERE DepID = ' +IntToStr(sidsDepsDeptID . AsInteger)+ ' or Parents starting with ' +# 39 ;
if Parent . AbsoluteIndex > 0 then
DataSet . CommandText := DataSet . CommandText + sidsDepsParents . AsString;
DataSet . CommandText := DataSet . CommandText + IntToStr(sidsDepsDeptID . AsInteger)+# 39 ;
end ;
if ckByPoss . Checked then
begin
DataSet . CommandText := DataSet . CommandText+ ' order by PosLevel, LastName, FirstName, FatherName'
end
else
DataSet . CommandText := DataSet . CommandText+ ' order by LastName, FirstName, FatherName' ;
Open;
Screen . Cursor := crDefault;
end ;
end ;
|