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

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

Как сохранить данные из ClientDataSet в некоторый файл


x_x_x ©   (2004-02-11 13:40:00) 

про SaveToFile... известно, но двоичный файл или xml не интересует. Нужно сохранить локально ввиде таблицы БД (какой БД - не важно, важен сам принцип)?


asp   (2004-02-11 15:38:00) [1]

Всё бы на готовенькое... :)
Можно примерно так:

procedure CopyDataRecord(const Source, Dest: TDataSet);
var
i: Integer;
f: TField;
begin
for i:= 0 to Source.Fields.Count - 1 do
begin
f:= Dest.Fields.FindField(Source.Fiels[i].FieldName);
if Assigned(f) then
f.AsVariant:= Source.Fields[i].AsVariant
end
end;

procedure CopyData(const SourceClientDataSet: TClientDataSet;
const DestTable: TTable);
var
b: TBookMark;
begin
b:= SourceClientDataSet.GetBookMark;
try
SourceClientDataSet.DisableControls;
SourceClientDataSet.First;
while not(SourceClientDataSet.Eof) do
begin
DestTable.Append;
CopyDataRecord(SourceClientDataSet, DestTable);
DestTable.Post;
SourceClientDataSet.Next
end
finally
if SourceClientDataSet.BookMarkValid(b) then
begin
SourceClientDataSet.GotoBookMark(b);
SourceClientDataSet.FreeBookMark(b)
end;
SourceClientDataSet.EnableControls
end
end;

Затем создать таблицу like ClientDataSet & call CopyData (неужели и это писать?)...


Наверх

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