|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Изначально задача была такая: 1) Имеется ряд табличек, заполняемых в программе, писанной на Фоксе. 2) Имеется БД Oracle, в которую нужно осуществить перенос данных. Решение было такое: 1) Создан VBS-скрипт, запускаемый средствами операционки с заданной частотой. 2) Содержимое скрипта просто: открываем OLE DB соединение с фоксом и с ораклом и переносим данные. Все БЫЛО хорошо в WinXP. Однако переехали на x64 и начались приключения. Итак, хотелось бы без серьезных усложнений восстановить работу скрипта. PS на самом деле таких скриптов несколько. Основная проблема с которой столкнулся: В x64 нет OLE DB провайдера для FOXа - в принципе нет. (3 дня подрыва интернета меня в этом убедили.) Можно поставить x32 OLE DB провайдера для FOX, но его использовать можно только при запуске cscript.exe x32 версии. Но тогда у меня "пропадает" провайдер для ORACLE (стоит x64 версии). Что-то ломать в оракле на этой машине мне не хочется, т.к. там стоит сервер БД и еще всякое. Если бы как-то можно было в одном скрипте одновременно работать с х32 разрядным провайдером FOXа и х64 провайдером Оракла... Или как-то еще. Помогите решить проблемку. Готов дать уточняющую информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 10:41 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
x64 OLE DB провайдера для FOXа нет и никогда не будет. ИМХО не там спрашиваешь. Я бы копал в сторону как запустить х32 провайдер Оракла. Возможно он просто не установлен. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 10:50 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Может быть не OLE DB, а какую-то другую технологию, позволяющую получать данные их FOXа можно использовать? Что еще есть для x64, чтобы можно было использовать в VBS-скриптах для получения данных FOXа? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:18 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
KOT MATPOCKuH, как уже написано, поставить 32-битные дрова для оракла и не мучать мозги себе и окружающим поисками чего-то необычного. И не путать теплое с мягким, то бишь битность и технологию. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:46 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Dima T, Sergey Sizov Имеются некоторые сложности с установкой там дров оракла, это первое о чем и я подумал. Пока вопрос другой - а вообще в win х64 посредвством VBS (64) вообще можно ли взять данные из FOXа? Если можно, то чем??? ЗЫ собственно поэтому вопрос в данной ветке ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:58 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Если же не чем, то тогда Мирософт действительно нашел наконец способ убить Фокс. Впервые об этом своем желании они заявляли где-то в 1995 году... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 12:14 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Понятия не имею про VBSx64. Обычно с данными фокса работают из фокса без всяких провайдеров. Насколько я знаю нет ничего кроме VFPOLEDB Если база целиком нужна, то можешь читать DBF как обычные файлы, структура там простая. ИМХО Если не дают провайдеров ставить, то проще всего поднять виртуалку с WinXP и в ней запустить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 12:15 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Dima T, 1) VBSx64 - это не совсем правильно я назвал. Вообще, это Windows Script Host в варианте VBS, запускаемый в операционках х64, т.е. WIN 7, WIN10, WIN12 и др. В некотором смысле это старый BAT-файл, содержимое которого написано на VB(J, c# и др.), позволяет работать практически с любыми компонентами системы. В моем случае - с БД. VBS я его назвал - по расширению запускаемого файла. Вообще-то очень удобно, если тебе нужно что-то небольшое, без установки всяких сред и компиляции всяких проектов. 2) Парсить всю таблицу (DBF) не хочу: не вижу смысла писать заново обработчик DBF-файлов. 3) Насколько я знаю нет ничего кроме VFPOLEDB Его тоже НЕТ! Умер вместе с х32 В х64 он не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 12:33 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
KOT MATPOCKuHНасколько я знаю нет ничего кроме VFPOLEDB Его тоже НЕТ! Умер вместе с х32 В х64 он не работает. В Win7х64 отлично работает x32, проблема только в руках. Данная задача требует немного попрограммировать, а с этим проблемы, как понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 12:44 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
KOT MATPOCKuH 3) Насколько я знаю нет ничего кроме VFPOLEDB Его тоже НЕТ! Умер вместе с х32 В х64 он не работает.Ложь. Работает. Просто его надо поставить и работать с ним из 32-битной программы. KOT MATPOCKuHМожно поставить x32 OLE DB провайдера для FOX, но его использовать можно только при запуске cscript.exe x32 версии.И что мешает этим воспользоваться? Нет/не хотите ставить 32-битные дрова оракла? Переносите через промежуточный формат, например, CSV. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 12:48 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Sergey Sizov, Как-то это все кривовато выходит... Уточню: Скрипт сначала обращается в оракл с вопросом - "Чего последнее перекачали?" На основе этих данных - выбирает в Фоксе "Чего нужно перекачать" и собственно перекачивает сырые данные, потом их обрабатывает и фиксирует вставку. В частности для оракла - все это действо - одна цельная транзакция. Существующий скрипт - на 30-40 строк. Распиливать это на несколько скриптов (выполняемых в разных разрядностях), организовывая передачу между ними параметров, например, в отдельных файлах - как-то сильно усложняет задачу. Она (задача) становится плохо читаемая и плохо поддерживаемая. За один раз переносится 5-50к строк. Иногда (раз в несколько месяцев) модифицируется структура DBF (купленное ПО, где разработчик шалит). Мне в этот процесс ни как не вмешаться. Примечание: везде пишу "в Фоксе" - означает в DBF-файлах, с которыми работает ПО, писанное на Фоксе 9.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 13:03 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
KOT MATPOCKuH, еще раз - что мешает поставить 32-битные дрова для оракла? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 13:32 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Здесь несколько путей решения задачи: 1. Мы очень часто используем MS SSIS (часть MS SQL Server) - там задаёшь версию клиента для Oracle (32 или 64 bit) - в зависимости что у Вас установлено. Для FoxPro Ole DB provider - 32 bit. Длее script and scheduled job. 2. В самом MS SQL Server добавляется два linked server - 64bit Oracle и 32 bit Fox pro Ole Db provider - и пишите Ваш script по перекачке данных. 3. В .NET пишите Вашу перекачку данных - там очень просто указать какой разрядности должны быть providers. В основном мы используем вариант 1 так как после deployment уже IT support отвечает за всё Good luck! P.S. Ещё есть независимые Oracle 32 bit providers, но их всё равно надо устанавливать на машине, где Вы будете запускать свой script... P.S.2. Странно, но в стандартном клиенте от Oracle идёт по умолчанию два клиента - 32 and 64 bit. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 12:27 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Sergey SizovKOT MATPOCKuH, еще раз - что мешает поставить 32-битные дрова для оракла? + 1 Как я уже заметил выше - по умоланию у стандартного клиента Oracle устанавливется обе версии - 32 and 64 bit... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2019, 12:29 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
Sergey Ch, 1) По сути так и сделал. Точнее выбрал комп, который всегда работает (WIN7), на котором оракл не использовался, поставил туда клиента оракла, фоксового провайдера и в х32 выполняется скрипт по расписанию. Запускается, конечно, х32 версия сервера сценариев. Изначально хотелось на WIN12 серваке это сделать, все же на сервере и должны быть подобные задачи, а не на "посторонней" рабочей станции. На этом виндовс-сервере и стоит сервер оракла. Однако клиента х32 там нет (почему-то). Переустанавливать клиента оракла на сервере оракла как-то боязливо, ибо не до конца понимаю этого процесса. Ведь там, наверное, будет новый "дом", новые прочие настройки - как это повлияет на работу самого сервера - хз. 2) Смутило во всей теме меня одно - что для х64 нет фоксового провайдера. И заменить видимо нечем. Вот и получаются танцы с бубном в старом добром х32. Работает, но как-то это все... неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 09:47 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
* Однако ПРОВАЙДЕРА х32 там нет (почему-то). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 09:49 |
|
Перенос данных скриптом из Fox 9.0 в Oracle12 на x64 Виндах
|
|||
---|---|---|---|
#18+
KOT MATPOCKuH* Однако ПРОВАЙДЕРА х32 там нет (почему-то). Если у Вас с английским всё в порядке - тут есть пошаговая инструкция как это сдеалать. Хотя я с Вами согласен - лучше не ломать если работает. К сожалению Microsoft уже не будет ничего делать с FoxPro. Всё что можно и нельзя они они уже перенесли в .NET... А данные они рекомендуют хранить в их MS SQL Server (есть вполне приличные официально бесплатные версии). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 22:53 |
|
|
start [/forum/topic.php?fid=41&msg=39826541&tid=1581649]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
283ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 307ms |
total: | 693ms |
0 / 0 |