Форум: "Базы";
Текущий архив: 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