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

Вниз

TreeView ключевое поле БД,   Найти похожие ветки 

 
AIB   (2003-07-17 15:53) [0]

У меня следующий вопрос:
я заполняю TreeView данными из таблицы БД,
(текстовое поле, и ключевое поле ID)таким образом:
TreeView.Items.AddChildObject(Node,Table.Fields[1].AsString,
Pointer(Table.Fields[0].AsInteger)).
Затем могу легко узнать в TreeView ID-поле так:
…=Integer(Node.Data).

Проблема в следующем.
Я работаю с таблицей FoxPro(.dbf) где ключевое поле имеет
не числовой, а строковый тип(примерно такого вида "rdk0000034" ).
Как в таком случае грамотно заполнить параметры процедуры
AddChildObject(...,...,Pointer(...))?
Чтобы определять ID из TreeView аналогично вышеуказанному
...(Node.Data)

Или это делается как-то иначе?. Кто сталкивался?
Спасибо всем тем, кто ответит по существу!!!

Любителей считать всех кроме себя "тормозами"
просьба не беспокоить, плз!


 
AkaSaint   (2003-07-17 16:36) [1]

Очевидно, в 4 байта значение типа "rdk0000034" не уместишь. Поэтому я бы на твоем месте выделял бы память под такую строку динамически и указатель на эту строку записывал бы в Node.Data. Затем, естетственно, освобождал бы память.


 
AIB   (2003-07-17 17:12) [2]

Ни разу так не делал. Но быть может вставишь
пару строк в предполагаемую процедуру, чтобы
мне понять в общих чертах механизм

procedure xxx;

begin

TreeView.Items.AddChildObject(Node,Table.Fields[1].AsString,
Pointer(....)).


....... //определение значения Node.Data
end

Спасибо!!!!




 
AIB   (2003-07-17 20:52) [3]

Ну что, никто так и не сможет мне помочь???


 
sniknik   (2003-07-17 22:25) [4]

> Любителей считать всех кроме себя "тормозами"
> просьба не беспокоить, плз!
(это не сноска, это ответ на AIB (17.07.03 20:52))


 
AkaSaint   (2003-07-17 22:47) [5]

Честно говоря, я уже не помню синтаксис в Дельфи. Могу на Си написать :)

AnsiString * KeyStrPtr = new AnsiString(Table.Fields[0].AsInteger);
TreeView.Items.AddChildObject(Node,Table.Fields[1].AsString,
KeyStrPtr).
Когда тебе больше не нужен этот узел в дереве, выполняешь:
delete Node.Data;


 
AkaSaint   (2003-07-17 22:50) [6]

Хорошенький гибрид Паскаля с Си получился :-) Точки нужно на стрелочки заменить.


 
Соловьев   (2003-07-18 10:08) [7]

Вот вырезка из моей проги, если что не понятно - спрашивай:

NodeData = ^ItemRec;
ItemRec = record
Id : integer;
Id_employee: integer;
Parent: integer;
CCount: integer;
Rating: integer;
CanChild: boolean;
Text: string;
end;

...

TTreeView(managment_structure).Items.BeginUpdate;
while not Eof do
begin
New(PNode);

PNode.Id := FieldByName("id").AsInteger;
PNode.Parent := FieldByName("management_parent").AsInteger;
PNode.CCount := FieldByName("count_child").AsInteger;
PNode.Text := FieldByName("management_txt").AsString;
PNode.Id_employee := FieldByName("id_employee").AsInteger;
PNode.CanChild := FieldByName("id_employee").AsInteger = -1;
PNode.Rating := FieldByName("raiting").AsInteger;

TempNode := managment_structure.Items.AddChildObject(Node, PNode.Text, PNode);

TempNode.HasChildren := PNode.CCount > 0;



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

Форум: "Базы";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
14-33295
LiLa Ananda
2003-07-23 08:47
2003.08.11
Требуются люди, желательно, в огромном количестве!:))


14-33280
8UnG
2003-07-22 21:31
2003.08.11
Com-port!!!


7-33386
boa
2003-05-29 11:25
2003.08.11
Вопрос по TService


1-33153
IgorRu
2003-07-26 21:37
2003.08.11
Как сохранить Форму в файл и затем в работающем проекте восст....


1-33150
elen
2003-07-28 10:54
2003.08.11
Создание Web Application





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский