Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1139824556
Гарри Поттер
2006-02-13 12:55
2006.03.12
VPN+Outlook+Exchange


6-1132763970
Дмитрий_05
2005-11-23 19:39
2006.03.12
Ошибка при отправке ServerSocket-ом ClientSocket-у


2-1140519656
лом
2006-02-21 14:00
2006.03.12
Такой вопрос


2-1140421864
Ио
2006-02-20 10:51
2006.03.12
Вопрос по времени


15-1139897064
parovoZZ
2006-02-14 09:04
2006.03.12
GPRS и PPP - протокол