Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: CL | DM;

Вниз

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

 
alll_23   (2007-10-19 11:45) [0]

Здравствуйте это снова я со своим назойливым вопросом вот посмотрите пожалуйста, я уже не предлагаю решить вам поставленую мной ранее задачу от начала и до конца, а только подсказать где у меня ошибка(дело в том что теперь 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;


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

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


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

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


 
Desdechado ©   (2007-10-19 11:58) [3]

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

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


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

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


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

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


 
alll_23   (2007-10-19 12:05) [6]

А как же зделать если нельзя ифом, а то с рекурсией пока не научился я работать, а может сдель так Node.Data=pointer(i) и будет всё нормально, я просто в кафе сижу и немогу паралельно пробовать


 
Маша Шрайбер ©   (2007-10-19 12:06) [7]

твоя моя непонимай алаверды большой привет спасибо друг я спасена увидимся завтра пока


 
alll_23   (2007-10-19 12:09) [8]

Ни чё не понял из слов Маши может там зашифрован ответ?


 
Сергей М. ©   (2007-10-19 12:19) [9]


> Маша Шрайбер ©   (19.10.07 11:59) [4]


> у рутовых узлов всегда есть родитель


Это по какому же постановлению партии и правительства ?


> alll_23   (19.10.07 12:05) [6]



> с рекурсией пока не научился я работать


А в грид ты уже научился выводить свои деревянные данные ?


 
Маша Шрайбер ©   (2007-10-19 12:28) [10]

>> Сергей М. ©   (19.10.07 12:19) [9]
>> Это по какому же постановлению партии и правительства ?

Неужели вы думаете, что я буду запоминать их номера?


 
Сергей М. ©   (2007-10-19 12:42) [11]


> Маша Шрайбер ©   (19.10.07 12:28) [10]


Зачем запоминать ?  Мне и ссылочки будет достаточно, чтобы самому ознакомиться)


 
Маша Шрайбер ©   (2007-10-19 12:58) [12]

>> Сергей М. ©   (19.10.07 12:42) [11]
>> Зачем запоминать ?  Мне и ссылочки будет достаточно, чтобы самому ознакомиться)

Ну как же я дам вам ссылку, если номера не запоминала? :)
А вообще, почему-то возникла ассоциация:
- Небо голубое.
- Это по какому же постановлению партии и правительства ?
- Неужели вы думаете, что я буду запоминать их номера?
- Мне и ссылочки будет достаточно, чтобы самому ознакомиться)
:)))


 
alll_23   (2007-10-19 13:15) [13]

Не в грид научился а в стринг_лист только же они не правильно вводятся (нули там)


 
Сергей М. ©   (2007-10-19 13:24) [14]


> Маша Шрайбер ©   (19.10.07 12:58) [12]


> - Небо голубое


У тебя проблемы со зрением).. И с памятью) .. Впрочем девичья память - притча во языцех


 
Сергей М. ©   (2007-10-19 13:25) [15]


> alll_23   (19.10.07 13:15) [13]
>
> они не правильно вводятся (нули там)


Какого же лешего ты полез в БД, если даже в стринг_листе не получил то что ожидал ?)


 
alll_23   (2007-10-19 13:28) [16]

Так пока и не лезу там хочу разобраться, стотрю в StringList и вижу 0-ли


 
Сергей М. ©   (2007-10-19 13:30) [17]


> пока и не лезу


Как это "не лезу" ?
А SQL-скрипт зачем, если не лезешь ?


 
alll_23   (2007-10-19 13:35) [18]

Так какая разница если в него попадают нули ноль он ведь везде ноль и в стринггриде в том числе а лезть начну когда не ноль будет
И что вы заладели с этой БД ведь SQl пока просто строка только с "0"
{IBTransaction.StartTransaction;
for i:=0 to Pred(Script.Count) do
begin
  IBQuery.SQL.Text:=Script.Strings[i];
  IBQuery.Execute;
end;
IBTransaction.Commit;

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


 
Сергей М. ©   (2007-10-19 13:40) [19]


> alll_23   (19.10.07 13:35) [18]


Откуда в Node.Data возьмется значение, отличное от нуля, если ты сам туда это значение не запишешь ?


> TreeView.Expand(True);


А это зачем ?


 
alll_23   (2007-10-19 13:41) [20]

Так я же выже и писал такое Node.Data:=pointer(i) и спрашивал будет оно работать или нет


 
Сергей М. ©   (2007-10-19 13:42) [21]


> вы заладели с этой БД


Потому что дальше у тебя запросто могут возникнуть проблемы с занесением дерева в таблицу, ибо ты не учитываешь ни особенностей конкретной СУБД, ни скрипта конкретной БД.


 
alll_23   (2007-10-19 13:44) [22]

Оно кстати заносится без проблем только с со всеми нулями в полях id parentid


 
Сергей М. ©   (2007-10-19 13:44) [23]


> выже и писал такое Node.Data:=pointer(i) и спрашивал будет
> оно работать или нет


Безотносительно СУБД - да, "работать" это должно.


 
alll_23   (2007-10-19 13:48) [24]

Ну ладно спасибо всем поеду домой лучше пробовать буду


 
Маша Шрайбер ©   (2007-10-19 14:25) [25]

>> Сергей М. ©   (19.10.07 13:24) [14]
>> > Маша Шрайбер ©   (19.10.07 12:58) [12]
>> > - Небо голубое
>> У тебя проблемы со зрением).. И с памятью) .. Впрочем девичья память - притча во языцех

Возможно, и со зрением и с памятью. Не будете ли тогда любезны напомнить мне этот цвет?



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

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

Наверх




Память: 0.53 MB
Время: 0.02 c
15-1191322414
dumka
2007-10-02 14:53
2007.11.11
Юридический вопрос


2-1192618151
sydenis
2007-10-17 14:49
2007.11.11
rasdial


2-1192520651
9899100
2007-10-16 11:44
2007.11.11
Поток


15-1191949451
asker
2007-10-09 21:04
2007.11.11
Нужно вырезать кусок песни из mp3 файла


15-1191786511
Kostafey
2007-10-07 23:48
2007.11.11
Автоматизация конфигурирования настроек IE 6/7