Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.068 c
15-1191931910
YuriKoltsov
2007-10-09 16:11
2007.11.11
Кодировка


2-1192705820
koss
2007-10-18 15:10
2007.11.11
ICQ и база данных


15-1191959183
Bogdan1024
2007-10-09 23:46
2007.11.11
суперсистема синхронизации паролей


15-1190709358
vajo
2007-09-25 12:35
2007.11.11
В Германии официально запретили копировать диски


2-1192771585
Lamer666
2007-10-19 09:26
2007.11.11
КАК "КОДОМ" присвоить картинку в Image?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский