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

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

Копирование из одной базы в другую [D6, dBase, FoxPro]


M126 ©   (2003-07-18 08:41:00) 

Здравстуйте, Мастера. Как скопировать данные из одной базы (Table1) в другую(Table3)? Новую базу я создал теперь не знаю как в неё перенести данные из основной базы где Flag1 = false
Table3.Active:=false;
Table3.TableName:="kassend.dbf";
If not Table3.Exists then begin
with Table3 do begin
TableType:=ttDBase;
with FieldDefs do begin
Clear;
with AddFieldDef do begin
Name:="NO";
DataType:=ftString;
Size:= 10;
end;
with AddFieldDef do begin
Name:="KOD_KL";
DataType:=ftString;
Size:= 4;
end;
with AddFieldDef do begin
Name:="NAME_KL";
DataType:=ftString;
Size:= 50;
end;
with AddFieldDef do begin
Name:="Flag1";
DataType:=ftBoolean;
end;
end;
with IndexDefs do begin
Clear;
with AddIndexDef do begin
Name:="";
Fields:="NO";
Options:=[ixPrimary];
end;
end;
CreateTable;
Open;
Insert;
FieldByName("NO").AsString:="?";
FieldByName("KOD_KL").AsString:="?";
FieldByName("NAME_KL").AsString:="?";
FieldByName("Flag1").AsBoolean:=true;
Post;
end;
end;
Подскажите пдиз как дальше?


-=Vlad=-   (2003-07-18 19:03:00) [1]

Кстати M126, можешь не сильно замарачиваться со стуктурой создаваемой базы, а в BatchMove используй batCopy
для разъяснения см. Help


-=Vlad=-   (2003-07-18 18:55:00) [2]

Можно намного проще и быстрее.
Сначала необходимо отфильтровать
Table1.Open;
Table1.Filter:="Flag1=false";
Table1.Filtered:=True;

А затем само копирование
Table3.BatchMove(Table1,batAppend);

> Stas © (18.07.03 08:54)
> Вроде бы так.

Нет не так ;-)


Stas   (2003-07-18 08:54:00) [3]

While not Table1.Eof do
begin
Table3.Insert;
For I:=0 to Table1.Fields.count-1
do begin
Table3.fields[i].asVariant=Table1.fields[i].asVariant;
end;
Table3.Post;
Table1.Next
end;

Вроде бы так.


Наверх

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