Главная страница
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.046 c
3-1154515859
ttt_111
2006-08-02 14:50
2006.10.08
Поиск по подстроке


3-1155037455
rsa_
2006-08-08 15:44
2006.10.08
проблема unicode в delphi>6 уже решена?


15-1158514450
ArtemESC
2006-09-17 21:34
2006.10.08
Запутался с дискетами...


3-1155033655
DelphiLexx
2006-08-08 14:40
2006.10.08
Как в DBGrid e подсвечивать конец линии сетки определенной записи


2-1159097390
Серый
2006-09-24 15:29
2006.10.08
MainMenu