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

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

Добавлять записи из одного TRxMemoryData в другой


DelphiLexx ©   (2006-08-08 11:01:00) 

Есть два 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:31:00) [1]

кстати ты сам себе противоречишь

>Есть два TRxMemoryData, имеющий одинаковый набор полей.

>Скажи пожалуйста, а способ с
"insert into таблица1 select * from таблица2"
не эфективнее ли?

ты видел возможность выполнять скуль над TRxMemoryData и получать результирующий датасет ?
я-нет!
есть конечно всякие sql mem table кот натравливаются на любые датасеты и позволяют использовать sql для выборки но думаю они врядли тебе нужны
:)


ORMADA   (2006-08-08 11:13:00) [2]

может ты изначально будешь правильно заполнять датасет ?
а не слеплять


ORMADA   (2006-08-08 11:12:00) [3]

в исходники Rx заглянуть не судьба ?
в частности как сделан LoadFromDataSet


DelphiLexx   (2006-08-08 11:11:00) [4]


> тады
> попробуй
> lmAppend

Теперь правильно.
Скажи пожалуйста, а способ с
"insert into таблица1 select * from таблица2"
не эфективнее ли?


ORMADA   (2006-08-08 11:10:00) [5]

тады
попробуй
lmAppend


StriderMan   (2006-08-08 11:10:00) [6]

сделай процедуру типа

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;


ORMADA   (2006-08-08 11:07:00) [7]

2 alexeis
не гони!
используемый компонент 2 TRxMemoryData!


ORMADA   (2006-08-08 11:06:00) [8]

lmCopy также копирует стурктуру таблицы


DelphiLexx   (2006-08-08 11:06:00) [9]


> mds1..LoadFromDataSet(Dataset, 0, lmCopy);

Он разве добавляет записи, мне кажется, что перезаписывает.


ORMADA   (2006-08-08 11:05:00) [10]

mds1..LoadFromDataSet(Dataset, 0, lmCopy);


alexeis   (2006-08-08 11:05:00) [11]

insert into таблица1 select * from таблица2


Наверх

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