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

Вниз

Пимогите разобраться с DOA.   Найти похожие ветки 

 
Grrey   (2002-04-03 16:06) [0]

А точнее с компоненитом TOraLoad. Пытаюсь написвть прогу для перекачки данных из IB базы в Oracle базу. Я делаю так:
Создаю в Oracle новую таблицу, аналогичную базе в IB (автоматическое создание таблицы планируеться в будующем). Потом с помощью IBQuery выбираю все записи и, перебирая их всех, пытаюсь записать в Oracle. Но на момент выполнения команды OraLoader.Load база почему-то выдает сообщение "invalid column name". Прошу обратить внимание, что это сообщение выдаеться именно при выполнении команды load, а не, как следовало бы ожидать, при попытки записать данные!!
Может кто-нибудь сможет помочь?


 
{bas}   (2002-04-03 16:24) [1]

Я не знаю как в DAO, но чего ты просто не хочешь с помощью Query в цикле
DAOQuery.Text := "insert into tb values(:id,:name,:subname)";
DAOQuery.ParamByName("id").Value := IBQuery.FieldByNAme("id").Value;
// end so on ......
DAOQuery.ExecSql; // ну или около того
IBQuery.Next;
Ты же все равно перебираешь данные.


 
grrey   (2002-04-03 16:55) [2]

С помощью этого компонента можно все быстрее сделать. Во всяком случае так в доке написанно!


 
EAlexander   (2002-04-03 17:16) [3]

так при Load идет загрузка данных.
наверно колонки не так назвал.


 
Sergey13   (2002-04-04 09:44) [4]

Что за версия DOA. У меня в 3.4.2 есть TOracleDirectPathLoader а не TOraLoad. Это то?
Сам не юзал, но вот пример из доки, может поможет

// Perform the Direct Path Load
procedure LoadRecords;
var Loader: TOracleDirectPathLoader;
i, Row: Integer;
begin
// Create a Loader at run time
Loader := TOracleDirectPathLoader.Create(nil);
try
// Set the session and table name
Loader.Session := MainSession;
Loader.TableName := "record_data";
// Get the default columns for the record_data table
Loader.GetDefaultColumns(False);
// Prepare the loader
Loader.Prepare;
// Process all data in batches of <MaxRows> records
Row := 0;
for i := 0 to Records.Count - 1 do
begin
// Copy one record to the array
Loader.Columns[0].SetData(Row, @Records[i].Line, 0);
loader.Columns[1].SetData(Row, @Records[i].Text[1],
Length(Records[i].Text));
Inc(Row);
// The array is filled, or we have preocessed all records:
// load this batch of records
if (Row = Loader.MaxRows) or (i = Records.Count - 1) then
begin
try
Loader.Load(Row);
except
// In case of an error: show where things went wrong
// and abort the load operation
on E:EOracleError do
begin
ShowMessage(E.Message + #13 +
"Row = " + IntToStr(Loader.LastRow) + #13 +
"Col = " + IntToStr(Loader.LastColumn));
Loader.Abort;
raise;
end;
end;
Row := 0;
end;
end;
// Commit the loaded data
Loader.Finish;
finally
Loader.Free;
end;
end;



А на Оракловой таблице никакой тригер не висит?


 
Grrey   (2002-04-05 08:46) [5]

To EAlexander> Я к ним (к колонкам) но номерам обращаюсь, так, как это было показанно в примере. И я точно уверен, что эти столбцы есть.
To Sergey13> У меня ODAC v3.5, может это разные пакеты. Тогда прошу извинения за не правильную информацию! У меня этот компонент называется TOraLoader. И таких функций как Loader.GetDefaultColumns(False); и
Loader.Prepare; здесь я не встречал.
Эту таблицу я только что сам создал, и естественно там никакого тригера быть не может.
В моей доке есть следующий пример:
procedure TfmMain.btLoadClick(Sender: TObject);
var
TickInfo: TTickInfo;
begin
TickInfo := TTickInfo.Create;
try
TickInfo.Start;

OraLoader.Load; // loading rows

StatusBar.Panels[1].Text := "Time: " + TickInfo.GetIntervalSt;

if Query.Active then
Query.Refresh;
finally
TickInfo.Free;
end;
end;

procedure TfmMain.PutData(Sender: TOraLoader);
var
Count: integer;
i: integer;
begin
Count := StrToInt(edRows.Text);
for i := 1 to Count do begin
Sender.PutColumnData(0, i, i);
Sender.PutColumnData("NUM", i, Random(100));
//Sender.PutColumnData(1, i, Random(100));
Sender.PutColumnData(2, i, Random*100);
Sender.PutColumnData(3, i, "abc01234567890123456789");
Sender.PutColumnData(4, i, Date);
end;
end;


 
Sergey13   (2002-04-05 09:38) [6]

2Grrey (05.04.02 08:46)
>To Sergey13> У меня ODAC v3.5, может это разные пакеты

Да так, чють-чють 8-)



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
1-80941
JibSkeart
2002-04-11 16:13
2002.04.25
Как запустить видео файлы программно


3-80770
ava
2002-04-04 14:31
2002.04.25
SQL


14-81076
Дмитрий
2002-03-21 12:09
2002.04.25
1C-Архив


6-81025
shapotkin
2002-02-15 09:51
2002.04.25
Как скачать файл по FTP с применением ProgressBar


14-81054
Свой
2002-03-07 15:33
2002.04.25
---|Ветка была без названия|---





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