Главная страница
    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.46 MB
Время: 0.048 c
2-1158328792
Pa5ha
2006-09-15 17:59
2006.10.08
StrToFloat и языковые стандарты


1-1156592778
SergV
2006-08-26 15:46
2006.10.08
OleContainer + любой браузер


15-1158160453
Vlad Oshin
2006-09-13 19:14
2006.10.08
пистолет мини-рассказ


15-1158435160
Ajax
2006-09-16 23:32
2006.10.08
Включение компьютера без видеокарты


3-1154353448
zdm
2006-07-31 17:44
2006.10.08
Импорт из ACCESS





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский