Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.035 c
1-1156444177
!aLeXa!
2006-08-24 22:29
2006.10.08
Chart.Canvas


1-1156592548
Handle
2006-08-26 15:42
2006.10.08
TTreeView


15-1158611953
Евгений Р.
2006-09-19 00:39
2006.10.08
Позиционирование в RichEdit


2-1158414145
olevacho_
2006-09-16 17:42
2006.10.08
последовательность вывода band-ов


2-1158753160
Rubey
2006-09-20 15:52
2006.10.08
Вывод в ячейку StringGrid-a