Форум: "Базы";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизTOraLoader, две проблемы Найти похожие ветки
← →
maep (2006-01-23 06:29) [0]Доброго времени суток.
Позволил себе хамство завести новую ветку, т.к. проблема сильно изменилась по сравнению с тем, что было. излагаю заново...
Загружаю данные в оракл посредством TOraloader (ODAC 5.50.19, то ли 5.55, сказано в readme)
Оракл Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
Проблемы, собственно, две:
1) Жуткие непонятки с датой. Поставил нового 9-го клиента. не помогло. А не помогло вот от чего:
Оракл кричит, что час должен быть от 1 до 12 (т.е. будто использует формат даты dd.mm.yyyy hh12.mm.ss),
хотя формат указан dd.mm.yyyy hh24.mm.ss.
Указан как в свойствах сессии, так и в свойствах колонок в лоадере.
2) При использовании режима загрузки lmDirect Оракл кричит ошибку ORA-26085, на тему того, что прямая заргузка должны быть в отдельной транзакции. Как её устроить то для него, отдельную? Почему об этом ничего не сказано в хелпе к ODAC? (последний вопрос - риторический)
Код, собственно, вот такой простой.
пробовал колонку с датой грузить и как текст
(
[pascal]
Sender.PutColumnData(3, k + 1, l.GetField(2, 100));
[/pascal]
)
cbData.GetField работает корректно проверено многократно, экспорт в ексель проходит без проблем:)
[pascal]
procedure TFormMain.PutData(Sender: TOraLoader);
var
k : integer;
req_id : integer;
strt : TDateTime;
l : CLine;
s : string;
begin
cbData.GoToFirst;
k := 0;
req := ...;
while not cbData.Eof do
begin
l := cbData.GetItem;
Sender.PutColumnData(0, k + 1, req_id);
Sender.PutColumnData(1, k + 1, Now);
Sender.PutColumnData(2, k + 1, l.GetField(0,100));
Sender.PutColumnData(3, k + 1, l.GetField(1, 100));
Sender.PutColumnData(4, k + 1, StrToDateTimeFrm("dd.mm.yyyy hh:nn:ss", l.GetField(2, 100)));
inc(k);
end;
end;
[/pascal]
← →
roottim © (2006-01-23 09:23) [1]хучу сказать:
1. если вы пользуйте DML то TOraLoader вам нафиг не нужен. Ибо лоадер в этом режиме сам пользует компонент TOraSql
2. к сожалению DateFormat, который я указал ранее, судя по исходникам не используется в режиме DML, а используется для преобразования строковых данных в формат даты для директ-режима
3. если объемы данных велики - разберитесь с директ-режимом. Эти скорости на порядок выше.
4. я наверно пропустил.., но если вы пользуйте net-режим компонентов, то TOraLoader в директе работать не будет. Это регламентирует crLab.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.091 c