Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
3-1137409890
BAX
2006-01-16 14:11
2006.03.12
Вопрос по сохранению значений


3-1137581245
люсик
2006-01-18 13:47
2006.03.12
базы данных


4-1134992931
eugenemail1970
2005-12-19 14:48
2006.03.12
Как считать данные с СОМ-порта номер 10 и выше?


2-1140430400
Елизавета
2006-02-20 13:13
2006.03.12
CheckBox как столбец компонента TStringGrid


15-1140366549
Fenik]
2006-02-19 19:29
2006.03.12
Ищу варган




   Наверх