![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Считать данные из таблицы Access в упорядоченную структуру ? [D7, WinXP]
Anton © (2008-01-24 20:52:00)Доброго времени суток !!! Не могу такую проблемку решить:
Есть такая вот структура, использую ее для программирования упорядоченного списка:
Type
TPN = ^TN; //Указатель на переменную типа TN
//Описание типа элемента списка
TN = record
Number : integer; //Номер
x0 : integer; //Координаты по X
y0 : integer; //Координаты по Y
Next : TPN; //Указатель на следующий элемент списка
end;
/Это один из 2-х разных по структуре списков/
После работы основной проги список нужно сохранить на винт, разобрался как сохранять в типизированные файлы. (точнее в два отдельных, т.к. в проге два списка), в один файл сохранять не получается. Может есть какой вариант ?
Пробую сохранять один (показанный) список в базу MSAccess через ADO вот так:
--------------кусь-------------------------
ADOQuery1.SQL.Add('CREATE TABLE Tab1 (Number Number ,x0 Number,y0 Number)');
ADOQuery1.ExecSQL
ADOQuery1.SQL.Clear;
currN:=headN;
predN:=nil;
while (currN <> nil) do
begin
ADOQuery1.SQL.Add('INSERT INTO Tab1 (Number,x0,y0)');
ADOQuery1.SQL.Add('values('''+IntToStr(currN^.Number)+''','''+IntToStr(currN^.x0)+''','''+IntToStr(currN^.y0)''')');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
predN:=currN;
currN:=currN^.Next;
end;
в Access все сохраняется, все ок.
Внимание вопрос:
ЧТО нужно написать что бы считать данные из Таблицы БД в структуру типа Запись
ЗЫ:Может примерчик какой подкинете элементарный типа:
Считываем в таблице поле - присваиваем значение переменной Delphi , дальше сам разберусь
Заранее СПАСИБО !
Slym (2008-01-25 05:39:00) [1]
var
Root:TN;
currN:TPN;
begin
ADOQuery1.SQL.Add('SELECT * FROM Tab1;');
ADOQuery1.Open;
Root.Next:=nil;
currN:=@Root;
while not ADOQuery1.Eof do
begin
currN.Next:=New(TPN);
currN:=currN.Next;
currN.Number:=ADOQuery1.FieldByName('Number').AsInteger;
currN.x0:=ADOQuery1.FieldByName('x0').AsInteger;
currN.y0:=ADOQuery1.FieldByName('y0').AsInteger;
currN.Next:=nil;
ADOQuery1.Next;
end;
currN:=Root.Next;
end;