Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TTreeNode [D7, XP]


Страницы:   1 2

alll_23 ©   (2007-10-19 11:45:00) 

Здравствуйте это снова я со своим назойливым вопросом вот посмотрите пожалуйста, я уже не предлагаю решить вам поставленую мной ранее задачу от начала и до конца, а только подсказать где у меня ошибка(дело в том что теперь id, parentid у меня всегда равны = 0)

var Node:TTreeNode;
   I:integer;
   SQL:string;
   Script:TStringList;

//------- формируем SQL скрипт
Script:=TStringList.Create;
TreeView.Expand(True); // полностью разворачиваем дерево, если его достраиваем "налету"
for i:=0 to Pred(TreeView.Items.Count) do  // перебираем все элементы
 begin
   Node:=TreeView.Items.Item[i];
   if Node.Parent=nil then
      begin
        // здесь вставляем узел без родителя (ParentID=0 указывает на отсутствие родителя)
        SQL:='INSERT INTO TABLENAME(ID,PARENTID,CAPTION) VALUES('+IntToStr(integer(Node.Data))+',0,'+QuotedStr(Node.Caption)+');';
      end
   else begin
          // а здесь - вставляем с ID родителя
          SQL:='INSERT INTO TABLENAME(ID,PARENTID,CAPTION) VALUES('+IntToStr(Integer(Node.Data))+','+
               IntToStr(Integer(Node.Parent.Data))+','+QuotedStr(Node.Caption)+');';
        end;
   Script.Add(SQL);
 end;


IBTransaction.StartTransaction;
for i:=0 to Pred(Script.Count) do
 begin
   IBQuery.SQL.Text:=Script.Strings[i];
   IBQuery.Execute;
 end;
IBTransaction.Commit;

// освобождаем скрипт
Script.Free;


alll_23   (2007-10-19 12:02:00) [21]

Desdechado вам ответ причём тут параметры если то параметром запрос не правильно сформирован ну конечно то что вы говорите правильно


Маша Шрайбер   (2007-10-19 11:59:00) [22]

И ещё.
Так нельзя  if Node.Parent=nil then потому, что и у рутовых узлов всегда есть родитель!


Desdechado   (2007-10-19 11:58:00) [23]

>  теперь id, parentid у меня всегда равны
значит, ты в Node.Data и Node.Parent.Data записываеешь одно и то же

VALUES('+IntToStr(Integer(Node.Data))+','+              IntToStr(Integer(Node.Parent.Data))+','+QuotedStr(Node.Caption)+');
Не делай так, используй параметры при работе с БД.


alll_23   (2007-10-19 11:56:00) [24]

Я не знаю пока что не до конца разабрался с TreeNode и думал что этого достаточно Node:=TreeView.Items.Item[i]; и думал что теперь с Data будет всё нормально.


Маша Шрайбер   (2007-10-19 11:53:00) [25]

Построение дерева где?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо