Эксперименты с тонким клиентом Оракл | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Всегда ставили Instant client oracle тупым способом,
в одну и туже директорию на локальном диске, переменные окружения устанавливал программно. Все работало. Сейчас осень, какое-то обострение. Решили сверху ставить одбс клиент так, чтобы там была переменная окружения, ответственная за путь Программу установки переменных окружения изменил, чтобы там был использован этот путь Коннекция не идет , не видит sqlora32.dll Файл занесения в реестр срабатывает, и драйвер одбс виден через win32 вижу среди других драйверов Зачем так придумали, мне и самому не понятно. Исправлено 1 раз(а). Последнее : boba, 16.10.17 10:59 |
Re: Эксперименты с тонким клиентом Оракл | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
1) В реестр так данные вносить не стоит. Во-первых для x64 версии ос в разделе HKEY_LOCAL_MACHINE\SOFTWARE\ODBC описываются 64-битные драйвера, а в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC - 32-битные. У тебя же и там и там один будет прописан... Т.е. нужно определять разрядность ОС и писать 32-битный драцвер либо туда, либо туда, но не в оба места одновременно.
2) Я не экспериментировал с ЛОКАЛЬНЫМ заданием переменных окружения. А ты именно локально их определяешь - для текущего процесса. Это значит что другой процесс эти изменения не увидит (и PATH, и этот LOCALAPPDATA). Да и бог его знает как сработает поиск самого драйвера, путь к которому указан с использованием переменной окружения. Тем более что тип ключа в reg-файле не указывается, а по идее для ключа "пути с переменной" нужен не просто REG_SZ, а REG_EXPAND_SZ. В общем я бы точно не стал писать в reg файле такой путь. 3) Для новых IC (и 11 и 12 версии) в PATH нужно прописывать ДВА пути - к собственно "корневой" папке клиента, и к его подпапке bin. При этом никаких пробелов между элементами не требуется. 4) RUSSIAN_CIS - IMHO отвратительная локаль. Во-первых она устаревшая, и в новых версиях сервера уже не поддерживается (заменили на RUSSIAN_RUSSIA) но и RUSSIAN_RUSSIA не универсальна - вдруг ещё где какой сервер 9-й версии встретится, где такой локали не было, во-вторых идиотский разделитель дробной/целой части в числах (запятая) который напрочь ломает в фоксе все дробные числа... В общем крайне не рекомендую. Всегда работал и работаю с AMERICAN_AMERICA и горя не знал ------------------ WBR, Igor |
Re: Эксперименты с тонким клиентом Оракл | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Игорь
Трюк с изменением файла реестра позволил запускать 32 разрядный клиент и на 64 разрядных машинах Это проверено, и у меня для 10 клиента работает уже года 4, если не больше У нас есть и 32 разрядные компы, и 64 разрядные. Людям часто компы меняют на новые, не заморачиваясь инсталяцией, а просто делая образ диска кроме директорий виндов. Никто не станет разбираться какой комп -32 или 64 разряда, Тут не об этом речь в данном случае убрали явный путь на клиент, подставив %переменная окружения Для sqlserver такая штука работает, и тут на это же надеялись, но пока не катит. функцию =fixenv() вариант c явными путями работает давно. Писать руками в переменные окружения никто не будет, у нас пять или 6 мест территориально, приложений для Оракл и раб мест хренова туча. При установки новых приложений бывало, что переменные окружения слетают. И сил ходить по всем компам нет сил. Кроме этого дел полно. А установка переменных программно работает. Другим сессиям это не мешает, а им и не нужно. Программа как раз ставит в переменные окружения верные пути, без всяких % Текст ошибки как раз реагирует не на явный путь, а на путь в реестре с % Исправлено 2 раз(а). Последнее : boba, 16.10.17 13:26 |
Re: Эксперименты с тонким клиентом Оракл | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Потому что на x64 ты делаешь неверную/некорректную запись про x64 драйвер - но им никто не пользуется. Т.е. просто ты записываешь мусор. В 32-битной винде ты тоже записываешь мусор, но там эти ветки вообще никто не использует. Как по мне так в любом случае мусор - это нехорошо. Тем более что определить разрядность ОС и банально прописывать либо туда, либо сюда не составляет труда. Ну разве что если из cmd это делать, там есть небольшой нюанс (сам cmd есть 32-битный и есть 64-битный) - но тоже вполне решаемо. Отт структуры ПО зависит. Если не порождаются новые процессы которым нужно работать с тем же клиентом (скажем какой excel, который своими силами делает через ODBC/OLEDB запрос к ораклу для генерации отчёта), и если эта самая установка переменных успевает сработать ДО первого обращения к инфраструктуре оракловского клиента, то по идее должно работать. Правда чисто фоксовая функция GETENV уже идёт побоку, т.к. она не увидят изменений в переменных окружения (вероятно в момент старта рантайма фокс делает "снимок" переменных и дальнейшие изменения уже не влияют на него - но не на внешние компоненты типа того же драйвера, конечно). Я ж говорю - даже просто "по логике" для прописывания пути с переменной нужно задать ключу тип REG_EXPAND_SZ, чего никак не добиться через импорт reg файла (через утилиту reg.exe, кстати, вполне себе можно). Но и этот вариант не факт что заработает. Т.е. прежде руками пропиши этот ключ с таким типом и переменной и проверь заработает или нет. Если да, то вместо импорта reg файла используй либо АПИ функции (но там тоже нужно разбираться с параметрами!), либо утилиту reg.exe. Вот кусочек моего батника установки IC где как раз в реестр прописывается параметр типа REG_EXPAND_SZ (это параметр отвечающий за PATH - если его по другому в реестр писать, скажем утилитой setx то как раз портится часть связанная с "переменными" в путях - всё превращается в обычные пути...)
В общем не понимаю я сути проблемы - для "установки" требуется просто батник, или небольшая программка которая всё пропишет раз и навсегда - и PATH/TNS_ADMIN/NLS_LANG и записи в реестр о драйвере. Если "особо умные" что-то портят, то просто ещё раз запустить такую программку (админом) и всё... Изнутри собственно прикладной программы это не исправить. Да, переменные окружения можно задать "локальные", но как быть с реестром для записей драйвера? Для записи в эту часть реестра нужны админские права, а значит сама прикладная программа идёт лесом - она не сможет "починить" реестр. ------------------ WBR, Igor |
Re: Эксперименты с тонким клиентом Оракл | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Игорь.
Да, фоксовым registry.prg можно делать то же самое, и определяя тип виндов писать в реестр только то, что нужно, не создавая мусора. Я пробовал, результат аналогичный. А можно и батником. В самом начале поста я описал ситуацию, она не сколько программная, сколько психологическая. Осеннее обострение, амбиции и что там еще. Есть люди, кто пишет код, а есть и другого типа. Вот решили автоматизировать и с наворотами. Мешают им предопределенные имена директорий установки клиентов. Даже и не спрашиваете, почему, если бы я сам знал. С прошлого четверга тупо психовал, даже давление подскочило. Даже анекдот не помогает про программиста и вопрос сына про Солнце. Сидит папа в глубоком дебаге, подходит сын и спрашивает, правда ли, что Солнце каждый день встает? Ответ папы. Если ты ,сынок, это проверил, ничего не трогай. Есть с полсотни рабочих мест, десяток задач, где данные с Оракл обмениваются с фоксовыми и назад. И 7 лет это безупречно работает. Теперь пора разбрасывать камни. Одним по балде уже получил. Есть вопросы, на кои невозможно получить верный ответ, кроме шизы. Исправлено 2 раз(а). Последнее : boba, 17.10.17 14:49 |
Re: Эксперименты с тонким клиентом Оракл | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
На самом деле тут есть твоя ошибка - в том что организационные мероприятия (установка и настройка клиентского ПО оракла) ты по своей доброте решил программными средствами - типа мы вам "как лучше". А надо было как положено - инструкция по установке и системные требования к твоей программе. Написано - "установлен и настроен ODBC драйвер к ораклу с таким-то именем, такой то версии, такими то настройками и такими-то TNS-записями" и всё. А уж как они будут это реализовывать тебя, как прикладного программиста вообще не должно беспокоить. Хотят через Ж. да флаг им в руки - пускай делают Главное вовремя снять с себя ненужную обязанность
------------------ WBR, Igor |
Re: Эксперименты с тонким клиентом Оракл | |
---|---|
boba Автор Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Инструкции есть. На точках системщики попроще,
исполняют их и все. Иногда кто-то в отпуске, по телефону за минуту -две се договоришься. |
© 2000-2024 Fox Club  |