Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Копия данных из одного DataSet в другой


Автор: Dimyan 25.2.2005, 08:53
Есть ли способ сделать копию данных из одного датасета в другой (компанентов InterBase) не перечисляя все поля типа
dset1field1 := dset2field1
а что то типа
dset1 := dset2
dset1.Post;
если структура этих dataSet'ов обсалютно одинаковая? Ну чтоб не переписывать все двадцать полей со знаком равенства

Автор: Kesh 25.2.2005, 09:55
Dimyan Разная реализация в зависимости от целей... Напиши поподробнее для чего нужно...

Автор: Dimyan 25.2.2005, 10:32
выглядит это так
В программе два IBDataBase (например DB1 и DB2) DB1 подключена к одной БД DB2 к другой
в самих базах данных есть одинаковые таблицы (DB1.T1 и DВ2.T1)
данные загружаются в DataSet которых соответственно тоже два, для каждой таблицы
задача взять все данные из dset1 (таблица DB1.T1) и вставить их полностью в dset2 (таблица DB2.T1)
т.е. сделать полную копию данных одной таблици в другую

Автор: Dimyan 25.2.2005, 11:04
Я думаю что для этой цели бы подошол TBatchMove но как я понял он не работает не с FIBPlus не даже с InterBase Express smile(

Автор: Dimich 25.2.2005, 11:39
А зачем перечислять поля ручками? Может программно будет удобнее перечислить?
Мы же можем получить имена полей? По такому принципу:
Код
 Query1.Fields.Fields [FieldNo].FieldName;

Автор: Guest 25.2.2005, 16:27
да и зачем имена полей?

Table2.Insert;
For j:=0 to Query1.FieldCount-1 do
Table2.Fields[j].asString:=Query1.Fields[0].asString;

Автор: bursa 25.2.2005, 16:28
Извините,
Table2.Fields[j].asString:=Query1.Fields[j].asString;
^

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)