Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

Добавлять записи из одного 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
15-1158559098
Курдль
2006-09-18 09:58
2006.10.08
Исключения, события и потокобезопасность.


2-1158954375
BTR
2006-09-22 23:46
2006.10.08
RICHEDITOM


11-1134201796
Vano12
2005-12-10 11:03
2006.10.08
Помогите-Я сделал авторан на диск в Delphi мне надо чтобы кнопка


2-1159105448
Серый
2006-09-24 17:44
2006.10.08
Метка


15-1158475872
TUser
2006-09-17 10:51
2006.10.08
Тоже глюк с форумом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский