|
|
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
GatorЛеонов Юрий, По хорошему все должны рождаться с желанием и возможностями развиваться и учиться. Может, рано ещё? А я вопрос здесь и задал для того, чтобы понять возможности и принцип работы компоненты. В официальном мануале практически ничего не сказано, кроме того что нужно определить одно из событий и вызвать метод Load. И пойми как оно работает... Как коммиты ставятся и ставятся ли вообще. В нете раскопал старый код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Здесь один раз дергается одно из событий. Что человек, который только начал знакомиться с компонентом, должен понять ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 15:55 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Это кривой код... Комитов при bulk load ,как таковых нету - это совсем другой механизм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:12 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, ну ты данные то "запутил" в БД? Обработчики событий (on...) написаны? что пишут? Контролируешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:12 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
zinpub, другого кода у меня нету. Я не понимаю принципа. Вот в самом первом вашем посте был пример события onGetColumnData. Если данных 10 тысяч строк, сколько раз выполнится это событие и почему? Можете растолковать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:29 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов Юрийzinpub, другого кода у меня нету. Я не понимаю принципа. Вот в самом первом вашем посте был пример события onGetColumnData. Если данных 10 тысяч строк, сколько раз выполнится это событие и почему? Можете растолковать? onGetColumnData - выполняется до тех пор пока вы не определите Eof = True ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:38 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, при чем тут число строк? https://www.devart.com/unidac/docs/devart.dac.tdaloader.ongetcolumndata.htm Write the OnGetColumnData event handler to put column values. TDALoader calls the OnGetColumnData event handler for each column in the loop. Column points to a TDAColumn object that corresponds to the current loading column. Use its Name or Index property to identify what column is loading. The Row parameter indicates the current loading record. TDALoader increments the Row parameter when all the columns of the current record are loaded. The first row is 1. Set EOF to True to stop data loading. Fill the Value parameter by column values. To start loading call the Load method. Another way to load data is using the OnPutData event. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:38 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Мне было удобнее с PutData... То есть логика такова: Ты сам берёшь данные - откуда хочешь... из строки, стрима, файла, хоть рэндомом их генеришь Передаешь компоненту Он кладёт их в базу Как только тебе надоело выходишь из процедуры... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:40 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
zinpubМне было удобнее с PutData... То есть логика такова: Ты сам берёшь данные - откуда хочешь... из строки, стрима, файла, хоть рэндомом их генеришь Передаешь компоненту Он кладёт их в базу Как только тебе надоело выходишь из процедуры... То есть командой Код: pascal 1. мы забиваем данные, а потом Load их пуляет по назначению? И после я сам вызываю коммит? Я правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:50 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
При установке ODAC по умолчанию устанавливаются и несколько демо проектов. Если вы откроете папку с Demo, то увидете там демо с названием OdacDemo. В этом демо есть и пример по работе с TOraLoader через GetColumnData и через PutData (исходники для демо по работе с TOraLoader находятся тут: OdacDemo\Loader\Loader.pas). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:50 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Да сорри за опечатку, я имел ввиду PutData ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:51 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
devartПри установке ODAC по умолчанию устанавливаются и несколько демо проектов. Если вы откроете папку с Demo, то увидете там демо с названием OdacDemo. В этом демо есть и пример по работе с TOraLoader через GetColumnData и через PutData (исходники для демо по работе с TOraLoader находятся тут: OdacDemo\Loader\Loader.pas). Да, я видел демку. По крайней мере смотрел код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:57 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийzinpubМне было удобнее с PutData... То есть логика такова: Ты сам берёшь данные - откуда хочешь... из строки, стрима, файла, хоть рэндомом их генеришь Передаешь компоненту Он кладёт их в базу Как только тебе надоело выходишь из процедуры... То есть командой Код: pascal 1. мы забиваем данные, а потом Load их пуляет по назначению? И после я сам вызываю коммит? Я правильно понял? Load и вызовет OnPutData... Пуляет данные PutColumnData.... Коммит "не нужен"(с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:57 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
zinpubLoad и вызовет OnPutData... Пуляет данные PutColumnData.... Коммит "не нужен"(с) Спасибо огромное за разъяснения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 16:59 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Оказывается рано обрадовался... При вызове Load бьет ошибку "Direct path loading is not supported in Direct mode" Основное требование заказчика при подключении к БД - никаких клиентов, только Direct... Обойти как-то можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 17:10 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Например промежуточный слой на сервере. Да хоть бы веб-сервер. Получает файл/ы, распарсивает и заливает в базу. Уж на сервере то оракл-клиент скорее всего установлен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 19:24 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийОказывается рано обрадовался... При вызове Load бьет ошибку "Direct path loading is not supported in Direct mode" Основное требование заказчика при подключении к БД - никаких клиентов, только Direct... Обойти как-то можно? Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 20:09 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
BulkLoad можно выполнить со стороны Pl/Sql из блоба или файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 20:11 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийОказывается рано обрадовался... При вызове Load бьет ошибку "Direct path loading is not supported in Direct mode" Основное требование заказчика при подключении к БД - никаких клиентов, только Direct... Обойти как-то можно? Можно выбрать режим lmDML : https://www.devart.com/odac/docs/devart.odac.tloadmode.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2019, 20:50 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
devartМожно выбрать режим lmDML а есть разница между imDML и серией INSERT'ов через dataset или query? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2019, 01:46 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнdevartМожно выбрать режим lmDML а есть разница между imDML и серией INSERT'ов через dataset или query? В режиме lmDML используется вставка с помощью обычного INSERT, только параметры передаются как DML array (подробнее про DML arrays можно прочитать тут https://www.devart.com/odac/docs/work_dml.htm ). Режим lmDML у TOraLoader сделан для тех случаев, когда у кого-то реализована загрузка данных через TOraLoader, но в один прекрасный момент возникает необходимость работать в Direct режиме, в котором загрузка данных в режиме lmDirect не поддерживается. В этом случае достаточно переключить режим с lmDirect на lmDML и ничего не надо переписывать в своем приложении. Скорость загрузки данных в режиме lmDirect немного выше, чем в lmDML режиме, но разница в скорости столько мизерная, что можно ей можно принебречь и считать эти два режма полностью взаимозаменяемыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2019, 09:22 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
devartВ режиме lmDML используется вставка с помощью обычного INSERT, только параметры передаются как DML array. Если я правильно понял, то в Код: pascal 1. Value будет представлен как VarArray? Или же как в примере делаем через OraSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2019, 15:04 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийЕсли я правильно понял, то в Код: pascal 1. Value будет представлен как VarArray? Или же как в примере делаем через OraSQL? Нет, данные в PutColumnData вы заполняете одинаково в обоих режимах. В режиме lmDML компонент TOraLoader сам преобразует их в DML Array и в виде массива отправит на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2019, 15:26 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
devartНет, данные в PutColumnData вы заполняете одинаково в обоих режимах. В режиме lmDML компонент TOraLoader сам преобразует их в DML Array и в виде массива отправит на сервер. Тогда тоска... Миллион записей 10 минут гонял. За это же время SQLLoader загнал 20 лямов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2019, 15:43 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийЗа это же время SQLLoader загнал 20 лямов Так надо же сравнивать в равных условиях. Снеси с машины клиент Oracle (в соответствии с требованиями доступа без его установки) и посмотри как SQLoader выкрутится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2019, 18:18 |
|
||
|
TOraLoader
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЛеонов ЮрийЗа это же время SQLLoader загнал 20 лямов Так надо же сравнивать в равных условиях. Снеси с машины клиент Oracle (в соответствии с требованиями доступа без его установки) и посмотри как SQLoader выкрутится. Так это без клиента и было сделано... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39839294&tid=2039211]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 440ms |

| 0 / 0 |
