Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2008, 07:54   #1
Paul Hindenburg
Форумчанин
 
Аватар для Paul Hindenburg
 
Регистрация: 27.07.2007
Сообщений: 123
По умолчанию Не получается заполнение TreeView из таблицы бд

Проект предельно прост - заполнение компонента treeview из табл.
процедура работает корректно только при подсоединении к гриду,
ошибка возникает при определении длины массива - запрос возвращает только 1-ю строку из запроса. в чем причина и как избавитсяот ошибки?
вот сама процедура заполнения:
Код:
procedure TForm1.Button2Click(Sender: TObject);
type
    Pnoder = ^noder;
    noder = record
    val : integer;
    end;
procedure fTreeFill(ParentNode : TTreeNode; ParentKey : Integer);
var
  ArrId : Array of Integer;
  ArrName : Array of String;
  i : Integer;
  PNode : TTreeNode;
  vetkadata:pnoder;
  keyData:Array of Integer;
begin
  with Form1.QuFill do
    begin
      Close;
      selectSQL.Clear;
      selectSQL.Add('select * from ORGSTRUKT where ParentID='+IntToStr(ParentKey));
      Open;
      SetLength(ArrId, RecordCount);
      SetLength(ArrName, RecordCount);
      SetLength(keyData, RecordCount);
      i := 0;
      while not EOF do
        begin
          ArrId[i] := FieldByName('Id').AsInteger;
          ArrName[i] := FieldByName('Name').AsString;
          keyData[i] := FieldByName('Id').AsInteger;
          Inc(i);
          Next;
        end;
      Close;
    end;
  for i:=0 to Length(ArrId)-1 do
    begin
      PNode := Form1.TreeView1.Items.AddChild(ParentNode, ArrName[i]);
      vetkadata:=new(pnoder);
      vetkadata.val:=0;
      PNode.Data:=vetkadata;
      pnoder(PNode.Data).val := keyData[i];
      fTreeFill(PNode,ArrId[i]);
    end;
form1.TreeView1.FullExpand;
end;

begin
 fTreeFill(nil,0) ;
end;
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
Paul Hindenburg вне форума Ответить с цитированием
Старый 10.03.2008, 08:59   #2
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

какая СУБД? способ доступа?
не забыл ли ты сделать FetchAll у DataSet'а?
dron-s вне форума Ответить с цитированием
Старый 10.03.2008, 13:12   #3
Paul Hindenburg
Форумчанин
 
Аватар для Paul Hindenburg
 
Регистрация: 27.07.2007
Сообщений: 123
По умолчанию Все решилось!!!

Цитата:
Сообщение от dron-s Посмотреть сообщение
какая СУБД? способ доступа?
не забыл ли ты сделать FetchAll у DataSet'а?
Да, да, да ....
я про это совсем забыл.

ЗЫ
СУБД Firebird
Ну что ж… Жизнь иногда такие фертеля выкидывает, что и фантасту не приснится…
Paul Hindenburg вне форума Ответить с цитированием
Старый 10.03.2008, 18:25   #4
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
СУБД Firebird
тогда ответ в посте номер два
dron-s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не получается программирование COM Nikuzkin Общие вопросы Delphi 9 11.06.2008 14:23
Не получается..... Delpher HTML и CSS 2 25.12.2007 13:17
Не получается вывести график RECREATOR Общие вопросы Delphi 7 23.12.2007 01:23
Не получается прочитать из файла...( Regloger Помощь студентам 3 09.12.2007 14:23