Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизДобавлять записи из одного TRxMemoryData в другой Найти похожие ветки
← →
DelphiLexx © (2006-08-08 11:01) [0]Есть два TRxMemoryData, имеющий одинаковый набор полей.
Как кратко добавить записи из второго в первый TRxMemoryData.
Я делаю так (но мне кажется есть способ короче):
with mds2 do
begin
First;
while not Eof do
begin
mds1.Append;
mds1.FieldByName("Field1").AsString :=
FieldByName("Field1").AsString;
mds1.FieldByName("Field2").AsInteger :=
FieldByName("Field2").AsInteger;
mds1.FieldByName("Field3").AsString :=
FieldByName("Field3").AsString;
mds1.FieldByName("Field4").AsFloat :=
FieldByName("Field4").AsFloat;
mds1.FieldByName("Field5").AsFloat :=
FieldByName("Field5").AsFloat;
Next;
end;
end;
mds1.Post;
← →
ORMADA © (2006-08-08 11:05) [1]mds1..LoadFromDataSet(Dataset, 0, lmCopy);
← →
alexeis © (2006-08-08 11:05) [2]insert into таблица1 select * from таблица2
← →
ORMADA © (2006-08-08 11:06) [3]lmCopy также копирует стурктуру таблицы
← →
DelphiLexx © (2006-08-08 11:06) [4]
> mds1..LoadFromDataSet(Dataset, 0, lmCopy);
Он разве добавляет записи, мне кажется, что перезаписывает.
← →
ORMADA © (2006-08-08 11:07) [5]2 alexeis
не гони!
используемый компонент 2 TRxMemoryData!
← →
ORMADA © (2006-08-08 11:10) [6]тады
попробуй
lmAppend
← →
StriderMan © (2006-08-08 11:10) [7]сделай процедуру типа
procedure DS2DS(ASrc, ADest: TDataSet);
var
i: integer
begin
for i := 0 to ASrc.FieldCount - 1 do
ADest.Fields[i].Value := ASrc.Fields[i].Value;
end;
← →
DelphiLexx © (2006-08-08 11:11) [8]
> тады
> попробуй
> lmAppend
Теперь правильно.
Скажи пожалуйста, а способ с
"insert into таблица1 select * from таблица2"
не эфективнее ли?
← →
ORMADA © (2006-08-08 11:12) [9]в исходники Rx заглянуть не судьба ?
в частности как сделан LoadFromDataSet
← →
ORMADA © (2006-08-08 11:13) [10]может ты изначально будешь правильно заполнять датасет ?
а не слеплять
← →
ORMADA © (2006-08-08 11:31) [11]кстати ты сам себе противоречишь
>Есть два TRxMemoryData, имеющий одинаковый набор полей.
>Скажи пожалуйста, а способ с
"insert into таблица1 select * from таблица2"
не эфективнее ли?
ты видел возможность выполнять скуль над TRxMemoryData и получать результирующий датасет ?
я-нет!
есть конечно всякие sql mem table кот натравливаются на любые датасеты и позволяют использовать sql для выборки но думаю они врядли тебе нужны
:)
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.039 c