|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushне могу. Компонент импорта тупо гонит все в таблицу. Пока еще не понял как перехватить "на лету" каждую запись и преобразовать как мне надо. Автор компонента подсказывал - на выходных попробую все-таки понять как. Может тебе сменить компонент? Например на тот же TClarionDataSet и им открывать таблицы Clarion`а как обычный набор данных? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 05:44 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
LocksmithPC, Помнится, у TClarionDataSet были какие-то проблемы как раз с массивами. Это не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 10:21 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSery, Поискал сейчас свежую версию. Последнее что было CDS_D2010. "CLARION TOOLKIT AGE II" "No Clarion Arrays and Indexes" :( тогда остается: Код: powershell 1. 2.
на выхлопе будет Код: powershell 1. 2. 3. 4. 5. 6. 7.
уж такую дрянь прочитать и залить куда надо рубля не стоит. правда остается засада с запятыми внутри "текстовых полей", но это уже мелочи. из минусов: долго и 16 бит. на 64-х битной ОС не запустить. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 10:34 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
LocksmithPC, До Clarion Toolkit 2 был ещё 1. Он не является наследником TDataSet, что делает несколько нетривиальным его использование, зато он низкоуровневый, и смутно помнится, что вот он-то как раз и массивы мог читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 10:59 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
WildSery, У меня только 2 версии. От Кудрявцева и Захребеткова. Первую версию не видал. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 11:04 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
LocksmithPC, У Кудрявцева была более ранняя, на основе которой он потом этот датасет и пытался запилить, но бросил, не доделав. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 11:13 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Вот, например. Clarion Toolkit v.1.14Description Components set for Clarion v.2.x tables read-only access. Features: Encrypted tables support (with password recovering) Clarion arrays support Firebird (Interbase 6) support Application-level transactions. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 11:23 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
LocksmithPCWildSery, Поискал сейчас свежую версию. Последнее что было CDS_D2010. "CLARION TOOLKIT AGE II" "No Clarion Arrays and Indexes" :( тогда остается: Код: powershell 1. 2.
на выхлопе будет Код: powershell 1. 2. 3. 4. 5. 6. 7.
уж такую дрянь прочитать и залить куда надо рубля не стоит. правда остается засада с запятыми внутри "текстовых полей", но это уже мелочи. из минусов: долго и 16 бит. на 64-х битной ОС не запустить. Ха, как бы не так. CCVT не видит массивов в принципе. Показывает только первый элемент. Эту утилиту я знаю уже 16 лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 12:24 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Если бы утилита CCVT нормально все конвертировала - я бы не занимался промежуточной конвертацией, а сразу же из ДБФ разгонял туда куда мне надо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 12:30 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Это чо, родная утилита не выплевывает родные поля из родных таблиц? :)) Слава б-гу АРМ на кларионе умер 4 года назад :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 12:35 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
LocksmithPCakrush, Это чо, родная утилита не выплевывает родные поля из родных таблиц? :)) Слава б-гу АРМ на кларионе умер 4 года назад :) Увы, да. Родная утилита не конвертирует поля массивы :'( Пришлось подкопить денег на компонент который нормально видит поля массивы. Афтар даже сказал что доработает импорт двумерного массива. Есть в одной таблице массив DIM(2,18) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 13:52 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Можешь на почту (LocksmithPC@mail.ru) кинуть небольшую табличку с такими полями, если там ПД нет, конечно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 14:09 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushне могу. Компонент импорта тупо гонит все в таблицу. 1) почему бы не использовать какую-нибудь внешнюю таблицу ? бинарный файл, например ? 2) даже если обязательно из компонента писать внутрь обычной таблицы Firebird - не нужно обновлять "по месту" и много раз подряд. Сделай в FB две таблицы - одна для импорта, вторая для очищенных значений. APPLIC1 и APPLIC2 А дальше как я писал выше. Ну пусть APPLIC1 будет не external table, а обычной таблицей, жаль, ну что сделаешь. Но сам метод точно такой же. Идешь по "импортнутой" таблице строчка за строчкой в цикле и по одной строке окончательно подготовленнйо записываешь в "очищенную" таблицу. Потом "импортнутую" таблицу чистишь или даже удаляешь. Твой главный враг - многократные пробежки по огромной таблице. Твоя главная задача - сделать пробежек так мало, как это возможно. 1, 2, 3... Чем меньше - тем быстрее. Тебе нужно написать PSQL блок (анонимный или stored procedure) который будет делать ВСЮ обработку каждой строчки сразу, не разбивая на шаги. Чтобы копировать в один проход, а не в 28 проходов. Я просто не знаю, что тут ещё можно разжёвывать дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 14:38 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
AriochА дальше как я писал выше. Ну пусть APPLIC1 будет не external table, а обычной таблицей, жаль, ну что сделаешь. Но сам метод точно такой же. Идешь по "импортнутой" таблице строчка за строчкой в цикле и по одной строке окончательно подготовленнйо записываешь в "очищенную" таблицу. Потом "импортнутую" таблицу чистишь или даже удаляешь. Можно GTT. Я именно так и делаю сложный импорт. В GTT идут сырые данные, а дальше курсор по GTT и их очистка и даже распихивание по нескольким таблицам. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 15:11 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Симонов Денис, вряд ли. я думал, но мне не понравилось :-P Я не знаю, насколько хорошо работает GTT с огроооомными объёмами данных. А главное, он описывает свой SMImport как некий черный ящик, в работу которого он вмешаться не может. И заменить его не может. И тут возникает вопрос, можно ли заставить его SMImport и запуск скрипта-распихивателя потом проходить через одно и то же соединение? Или SMImport делаёт своё соединение, а скрипт - своё ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 15:30 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
AriochСимонов Денис, вряд ли. я думал, но мне не понравилось :-P Я не знаю, насколько хорошо работает GTT с огроооомными объёмами данных. А главное, он описывает свой SMImport как некий черный ящик, в работу которого он вмешаться не может. И заменить его не может. И тут возникает вопрос, можно ли заставить его SMImport и запуск скрипта-распихивателя потом проходить через одно и то же соединение? Или SMImport делаёт своё соединение, а скрипт - своё ? Как работает компонент: 1. Задаю имя исходной таблицы, имя таблицы-приемник, указываю Датасет. 2. Задаю соответствие столбцов а потом, по сути только несколько строк: Код: sql 1. 2. 3. 4. 5.
В теории компонент сам все комитит, но комит вызываю на всякий случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 18:41 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Модераторам спасибо. Сообщение писал быстро, забыл оформить в теги. Сообщение можно удалить ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 20:28 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, вставка большого количества строк в SQL базы данных через TDataset.Insert / TDataSet.Post может быть весьма долгой (зависит от того, работает ли TDataSet честно "в лоб" или использует хитрости) Что именно тормозит, скрипты после fbTImport.Close ? или процесс от StartTransaction до Close ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2018, 20:55 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Arioch, Мне кажется что сильно тормозят скрипты. Засек время. Всего импортируется 6млн строк. Время 1ч30мин. Получается в среднем - ок. 1111 записей в секунду. Думаю что нормально. Когда пойду дальше - переносить из временной БД в основную с обработкой, тогда посмотрим. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 14:32 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Немного не точно написал: импортируется и обрабатывается скриптами. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 14:33 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Ты не ответил, - исходники используемого компонента импорта у тебя есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 15:08 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Vlad Fakrush, Ты не ответил, - исходники используемого компонента импорта у тебя есть? есть ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 17:43 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Вот. А теперь представь картину, что опытной рукой его, скорее всего, не более чем пятью строками можно поправить с тем, чтобы он для пустых строк сразу вставлял пустые строки, а даты сразу же вставлял с необходимым смещением. И что тогда останется от того твоего скрипта постобработки и обмусоливаемое "проблемы" в целом? Представил? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 17:59 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Vlad Fakrush, Вот. А теперь представь картину, что опытной рукой его, скорее всего, не более чем пятью строками можно поправить с тем, чтобы он для пустых строк сразу вставлял пустые строки, а даты сразу же вставлял с необходимым смещением. И что тогда останется от того твоего скрипта постобработки и обмусоливаемое "проблемы" в целом? Представил? Представил. Допустим со строками можно попробовать. А вот с датами проблема. Даты хранятся в типе LONG и как при импорте определить это число или дата? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 18:08 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Не имея перед глазами исходников трудно говорить более предметно, но если ты расшифруешь как именно в нем "задается соответствие столбов", то могу и пофантазировать, так сказать, на кончике пера. Однако, прошу заметить, что уже за счет одного лишь сокращения последующего апдейтов строк твой послескрипт уже полегчает как бы не не треть (или больше?). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2018, 21:49 |
|
|
start [/forum/topic.php?fid=40&msg=39637922&tid=1561125]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 307ms |
total: | 432ms |
0 / 0 |