Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
На локальной машине, где установлен оракл 8, проект собирается и запускается нормально. На сервере, где также установлен оракл 8, ошибка Exception Exception at 0011F1CD Cannot find oci.dll.
Path = C:\Program Files (x86)\Borland\Delphi7\Bin;C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl\;C:\Inprise\vbroker\bin;C:\orant\BIN;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\orant\jdk\bin

На сервере oci.dll лежит в C:\orant\BIN

Спасите, помогите, не знаю в какую сторону думать
4 сен 18, 05:54    [21663353]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
На других серверах, где установлен оракл клиент 9 и выше ошибка не возникает, только там, где оракл 8
4 сен 18, 06:06    [21663356]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2534
компоненты доступа бы хоть огласил
4 сен 18, 06:40    [21663359]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
Tactical Nuclear Penguin, ODAC 6.70.0.45
4 сен 18, 06:53    [21663362]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2534
клиент oci.dll 32-битный?
права на папку у пользователя есть?
4 сен 18, 06:55    [21663363]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
Tactical Nuclear Penguin, 32, права есть.
Может проблема в том, что собирается и компилится под системой х64?
4 сен 18, 07:06    [21663365]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
goldmi45
Member

Откуда:
Сообщений: 1004
morhellene,

Разрядность приложения какая? тоже 32-бита?
Попробуйте Process Explorer'ом посмотреть, возможно кроме oci.dll не хватает зависимых библиотек.
4 сен 18, 07:28    [21663370]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
goldmi45, да, тоже 32 бита
4 сен 18, 07:29    [21663371]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2534
а ось какая?
4 сен 18, 07:52    [21663381]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
Tactical Nuclear Penguin, win10x64
4 сен 18, 07:55    [21663383]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2245
morhellene

На сервере oci.dll лежит в C:\orant\BIN

Спасите, помогите, не знаю в какую сторону думать

Пользователь, который запускает на сервере программу, имеет NTFS права на каталог C:\orant? Возможно, он никаких dll физически прочитать не может, таки нет прав в каталог зайти. Попробуйте запустить явно run as administrator - и сравните ощущения.
4 сен 18, 07:57    [21663387]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2245
morhellene,

Oracle сделал небольшой подвох - при установке x64 компонента снимается разрешение для ALL с каталогов x86 библиотек и компонентов. Индус-стайл, так сказать. Ставьте обратно для everyone разрешение на чтение, затем replace на дочерние каталоги и файлы - и все заработает.
4 сен 18, 07:59    [21663390]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3651
В odac есть direct mode -- с ним никаких dll и клиентов для работы приложения не нужно. Очень удобно. Включается в свойствах соединения.
4 сен 18, 09:45    [21663475]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
Andy_OLAP,
Загадка в том, что другая программа, собранная на той же машине, с теми же одак, но в code gear 2007, на сервере запускается без ошибок. Пересобрать целевую программу, используя Codegear не получится, несовместимость не имеющих отношение к ораклу компонент.
Также целевая программа, собранная на другой машине (win7x64, та же версия odac, одна разница, что там помимо оракл клиент 8, еще установлен оракл клиент 10, непонятно насколько это имеет значение), запускается на сервере под тем же пользователем без проблем и ошибок.
Вероятно ошибку следует искать где-то в переменных среды delphi, но эксперименты с path ни к чему не привели пока.
4 сен 18, 09:49    [21663480]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
b0rk
Member

Откуда: Харьков
Сообщений: 567
Andy_OLAP
morhellene
На сервере oci.dll лежит в C:\orant\BIN

Спасите, помогите, не знаю в какую сторону думать

Пользователь, который запускает на сервере программу, имеет NTFS права на каталог C:\orant? Возможно, он никаких dll физически прочитать не может, таки нет прав в каталог зайти. Попробуйте запустить явно run as administrator - и сравните ощущения.

+1
4 сен 18, 10:55    [21663619]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
morhellene
Member

Откуда:
Сообщений: 16
b0rk, другая программа работает с теми же правами, но скомпилированная в кодегир2007.
4 сен 18, 11:24    [21663671]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
cptngrb
Member

Откуда:
Сообщений: 163
а TNS_ADMIN где?
4 сен 18, 12:39    [21663791]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
MaratIsk
Member

Откуда: Astana, Kazakhstan
Сообщений: 2400
morhellene
На локальной машине, где установлен оракл 8, проект собирается и запускается нормально. На сервере, где также установлен оракл 8, ошибка Exception Exception at 0011F1CD Cannot find oci.dll.
Path = C:\Program Files (x86)\Borland\Delphi7\Bin;C:\Program Files (x86)\Borland\Delphi7\Projects\Bpl\;C:\Inprise\vbroker\bin;C:\orant\BIN;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\orant\jdk\bin

На сервере oci.dll лежит в C:\orant\BIN

Спасите, помогите, не знаю в какую сторону думать


{$IFDEF WIN32}
    sNLS := IniFile.ReadString('Oracle', 'NLS_LANG', 'AMERICAN_AMERICA.CL8MSWIN1251');
    IniFile.WriteString('Oracle', 'NLS_LANG', sNLS);
    SetEnvironmentVariable('NLS_LANG', PChar(sNLS));
    SetEnvironmentVariable('PATH', PChar(ExtractFilePath(ParamStr(0)) + 'drivers\'));
{$ENDIF} 
4 сен 18, 12:55    [21663838]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10488
JaDi
никаких dll и клиентов для работы приложения не нужно. Очень удобно
А потом при переходе на новую версию оракла покупаешь новый комплект компонент и пересобираешь все приложение.

Удобно. Очень.
4 сен 18, 13:27    [21663914]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3651
_Vasilisk_
JaDi
никаких dll и клиентов для работы приложения не нужно. Очень удобно
А потом при переходе на новую версию оракла покупаешь новый комплект компонент и пересобираешь все приложение.

Удобно. Очень.

Нет, не нужно ничего покупать или пересобирать. У оракла отличная обратная совместимость, как и у компонентов (например, приложения, написанные во времена 9 оракла прекрасно работали как с 10, так потом и с 11 версией сервера). Да, могут вылезти какие-то косяки, но это оооооочень редко и причина обычно в багах самого сервера, которые правятся хотфиксами (либо специфическими настройками, которые надо поправить).
4 сен 18, 14:02    [21664006]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
MaratIsk
Member

Откуда: Astana, Kazakhstan
Сообщений: 2400
JaDi
_Vasilisk_
пропущено...
А потом при переходе на новую версию оракла покупаешь новый комплект компонент и пересобираешь все приложение.

Удобно. Очень.

Нет, не нужно ничего покупать или пересобирать. У оракла отличная обратная совместимость, как и у компонентов (например, приложения, написанные во времена 9 оракла прекрасно работали как с 10, так потом и с 11 версией сервера). Да, могут вылезти какие-то косяки, но это оооооочень редко и причина обычно в багах самого сервера, которые правятся хотфиксами (либо специфическими настройками, которые надо поправить).


не знаешь - не болтай
direct mode основан на низкоуровневом TCP, в который разработчики Oracle вносят изменения без обязательств обратной совместимости
4 сен 18, 14:18    [21664033]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10488
JaDi
не нужно ничего покупать или пересобирать
Недавно у коллег был опыт перехода на 12 оракл с прямым подключением и компонентами пятилетней давности.

Так, что не нужно мне рассказывать
4 сен 18, 14:25    [21664060]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3651
_Vasilisk_
JaDi
не нужно ничего покупать или пересобирать
Недавно у коллег был опыт перехода на 12 оракл с прямым подключением и компонентами пятилетней давности.

Так, что не нужно мне рассказывать

Читаем внимательно.
4 сен 18, 14:28    [21664065]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3651
MaratIsk
JaDi
пропущено...

Нет, не нужно ничего покупать или пересобирать. У оракла отличная обратная совместимость, как и у компонентов (например, приложения, написанные во времена 9 оракла прекрасно работали как с 10, так потом и с 11 версией сервера). Да, могут вылезти какие-то косяки, но это оооооочень редко и причина обычно в багах самого сервера, которые правятся хотфиксами (либо специфическими настройками, которые надо поправить).


не знаешь - не болтай
direct mode основан на низкоуровневом TCP, в который разработчики Oracle вносят изменения без обязательств обратной совместимости

Не знаешь, не болтай -- оракловские клиенты работают через точно такие же апи, и оракл старается сохранять совместимость. Читай, со старых oci.dll можно подключаться к новому серверу:
http://www.dba-oracle.com/t_oracle_client_versions_higher_lower_database_release.htm
4 сен 18, 14:34    [21664078]     Ответить | Цитировать Сообщить модератору
 Re: Cannot find oci.dll  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7066
MaratIsk
direct mode основан на низкоуровневом TCP, в который разработчики Oracle вносят изменения без обязательств обратной совместимости

А как-же РОДНЫЕ Oracle'вые клиенты прежних версий работают?

Да, несовместимости есть, но старые клиенты (например Oracle Forms 6i основан аж на Net 8.0.3-8.0.6) обычно с новыми серверами работают и "не жужжат". В принципе Матрицу совместимости клиент-сервер можно на металинке посмотреть.

P.S.
Тут другая проблема, что новые фичу юзаться не будут. Например в 11'ой версии появилась возможность мелкие LOB'ы передавать в одном пакете, а не разными round-trips. Для задачь работающих с небольшими объектами (например гео-данные) дасть разницу в скорости на __порядки__
Или возможность вместо TCP/IP использовать InfiniBand )))
4 сен 18, 14:43    [21664094]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить