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

Вниз

AppendRecord массивом   Найти похожие ветки 

 
serp   (2007-04-03 17:22) [0]

Нужно сначало записать данные в массив, а потом одной строчкой с AppendRecord загнать в базу.
Можно так?
Делаю так:
A: Variant;
A := VarArrayCreate([0, OraQuery1.Fields.Count], varVariant);
while not OraQuery1.Eof do begin
for i:=0 to OraQuery1.FieldDefs.Count-1 do begin
 A[i]:=OraQuery1.FieldByName(OraQuery1.FieldDefs.Items[i].Name).AsVariant;
end;
ADOTable1.AppendRecord([A]);
........


"Invalid variant type conversion"
???


 
Johnmen ©   (2007-04-03 21:25) [1]

A : array of TVarRec;
SetLength(A,OraQuery1.Fields.Count);
while ...
...
ADOTable1.AppendRecord(A);


 
Sergey13 ©   (2007-04-04 08:38) [2]

> [0] serp   (03.04.07 17:22)

А почему не просто
Insert into Select from
?
Зачем на клиента тащить, только что бы вставить?


 
serp   (2007-04-04 08:51) [3]

Спасибо!


> Sergey13 ©   (04.04.07 08:38) [2]

База на Oracle записывается в DBF (FoxBase). Из оракла данные вытягиваются в нужной форме запросом и 1 к одному заливаются в DBF.
Как тут "Insert into Select from"? я не догоняю...


> Johnmen ©   (03.04.07 21:25) [1]

Я с этого кода начинал. Но уперся в то, что на
это A[i]:=OraQuery1.FieldByName(OraQuery1.FieldDefs.Items[i].Name).AsVariant;
при A : array of TVarRec;
начинается " Incompatible types: "TVarRec" and "Variant" ".......

Не подскажите... ?


 
Sergey13 ©   (2007-04-04 08:55) [4]

> [3] serp   (04.04.07 08:51)

Я просто не въехал про 2 СУБД. Но в принципе можно, если дбф-ку подлинковать к ораклу. Вроде такое возможно через ОДБС. Подробностей не скажу - сам не пользовался.


 
serp   (2007-04-04 08:57) [5]

К ораклу коннекчусь без клиента ODAC.
К DBF через Jet 4, ADO.
Так что анрил....


 
Jan1   (2007-04-04 10:14) [6]


> К ораклу коннекчусь без клиента ODAC.
> К DBF через Jet 4, ADO.
> Так что анрил....

анрил чего? линкед создается на сервере.


 
serp   (2007-04-04 10:30) [7]

>> анрил чего? линкед создается на сервере.
Ладно.. кто знает, тот поймет.. я не понял.

Вопрос:

Как загнать в A значения?

A : array of TVarRec;
A[i]:=OraQuery1.FieldByName(OraQuery1.FieldDefs.Items[i].Name).AsVariant;
не так. а как?


 
serp   (2007-04-04 10:31) [8]

type
 PVarRec = ^TVarRec;
 TVarRec = record
   case Byte of
     vtInteger:    (VInteger: Integer; VType: Byte);
     vtBoolean:    (VBoolean: Boolean);
     vtChar:      (VChar: Char);
     vtExtended:  (VExtended: PExtended);
     vtString:    (VString: PShortString);
     vtPointer:    (VPointer: Pointer);
     vtPChar:      (VPChar: PChar);
     vtObject:    (VObject: TObject);
     vtClass:      (VClass: TClass);
     vtWideChar:  (VWideChar: WideChar);
     vtPWideChar:  (VPWideChar: PWideChar);
     vtAnsiString: (VAnsiString: Pointer);
     vtCurrency:  (VCurrency: PCurrency);
     vtVariant:    (VVariant: PVariant);
     vtInterface:  (VInterface: Pointer);
     vtWideString: (VWideString: Pointer);
     vtInt64:      (VInt64: PInt64);
end;


 
Jan1   (2007-04-04 10:33) [9]

Зачем тебе Appendrecord? Заюзай Insert и Post


 
serp   (2007-04-04 10:37) [10]

>> Зачем тебе Appendrecord? Заюзай Insert и Post
А Insert для 30т. записей, не скажется более долгим по времени чем appendrecord?


 
Jan1   (2007-04-04 11:15) [11]


> А Insert для 30т. записей, не скажется более долгим по времени
> чем appendrecord?

это одно и то же. только ты будешь явно приводить типы.


 
Jan1   (2007-04-04 11:20) [12]


> А Insert для 30т. записей, не скажется более долгим по времени
> чем appendrecord?

ну и конечно если ты будишь коммитить не каждую запись а где-то каждую 1000-ную то скорость будет приличная.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.07.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.004 c
2-1181132293
Megabyte
2007-06-06 16:18
2007.07.01
Перечислимый тип в строку


1-1177845915
Cj
2007-04-29 15:25
2007.07.01
BeginUpdate для всей StringGrid


1-1177676693
Ford
2007-04-27 16:24
2007.07.01
Смена раскладки клавиатуре в системе


2-1181052191
rumpelshtilchen
2007-06-05 18:03
2007.07.01
Вопрос


2-1181198499
Solbon
2007-06-07 10:41
2007.07.01
Системный журнал





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