Как определить версию OracleClient ?
От: Зеленый Россия  
Дата: 31.01.03 09:15
Оценка:
Люди!!!
Помогите!
Как узнать версию ClientOracle програмным путем??
Вот заходишь на комп, запускаешь прогу, а она тебе — версию клиента оракла
(если таковой есть).
Очень нужно!!!
Re: Как определить версию OracleClient ?
От: VVP Россия 67524421
Дата: 31.01.03 14:55
Оценка:
Здравствуйте, Зеленый, Вы писали:

З>Как узнать версию ClientOracle програмным путем??

З>Вот заходишь на комп, запускаешь прогу, а она тебе — версию клиента оракла
Проверить надо VersionInfo файла $ORACLE_HOME\BIN\OCI.DLL
Полный путь файла узнать в этом ключе реестра:
[HKLM\SOFTWARE\ORACLE\]
"ORACLE_HOME" = "C:\\Oracle\\Ora81"
Либо должна быть определена переменная окружения с таким именем.
Только я сомневаюсь, что это очень нужно.
Никогда не бойся браться делать то, что делать не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник...
Re[2]: Как определить версию OracleClient ?
От: Аноним  
Дата: 31.01.03 15:26
Оценка:
Здравствуйте, VVP, Вы писали:

VVP>Здравствуйте, Зеленый, Вы писали:


З>>Как узнать версию ClientOracle програмным путем??

З>>Вот заходишь на комп, запускаешь прогу, а она тебе — версию клиента оракла
VVP>Проверить надо VersionInfo файла $ORACLE_HOME\BIN\OCI.DLL
VVP>Полный путь файла узнать в этом ключе реестра:
VVP>[HKLM\SOFTWARE\ORACLE\]
VVP>"ORACLE_HOME" = "C:\\Oracle\\Ora81"
VVP>Либо должна быть определена переменная окружения с таким именем.
VVP>Только я сомневаюсь, что это очень нужно.

Имеется ввиду та версия, что на закладке About\version находится??
Так она 0.0.0.0 ((
А переменной окружения такой нет...
Re[3]: Как определить версию OracleClient ?
От: Sergey Ten http://www.fastalgo.com
Дата: 31.01.03 16:57
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Имеется ввиду та версия, что на закладке About\version находится??

А>Так она 0.0.0.0 ((

Надо смотреть не только File Version из ресурса VERSIONINFO, но и Product Version, причем во всех секциях. Где-нибудь да промелькнет. Вот версия, хранящаяся в sqlplusw.exe:


Struc Version:   1.0
File Version:    0.0.0.0
Product Version: 0.0.0.0
File Flags Mask: 0.0
File Flags:      
File OS:         UNKNOWN
File Type:       UNKNOWN
File SubType:    UNKNOWN
File Date:       00:00:00  00/00/0000

     Struc has Child(ren). Size: 704 bytes.

Children Type:      StringFileInfo
Language/Code Page: 1033/1200
CompanyName:        Oracle Corporation
FileDescription:    Oracle SQL*PLUS
FileVersion:        8.1.5.0.0
InternalName:       SQLPLUSW
LegalCopyright:     Copyright © Oracle Corporation 1999. All rights reserved.
OriginalFilename:   SQLPLUSW.EXE
ProductName:        SQL*PLUS
ProductVersion:     8.1.5.0.0

Children Type:      VarFileInfo
Translation:        1033/1200


В общем случае, файл oci.dll может и не присутствовать в клиенте (в 7.3 его нет, и в 8.0, по-моему, тоже, хотя не уверен). Поэтому я привел информацию о sqlplusw.exe, который вроде бы есть во всех версиях.
Re[4]: Как определить версию OracleClient ?
От: Зеленый Россия  
Дата: 31.01.03 17:20
Оценка:
Здравствуйте, Sergey Ten, Вы писали:

ST>Надо смотреть не только File Version из ресурса VERSIONINFO, но и Product Version, причем во всех секциях. Где-нибудь да промелькнет. Вот версия, хранящаяся в sqlplusw.exe:


ST>

ST>
ST>Struc Version:   1.0
ST>File Version:    0.0.0.0
ST>Product Version: 0.0.0.0
ST>File Flags Mask: 0.0
ST>File Flags:      
ST>File OS:         UNKNOWN
ST>File Type:       UNKNOWN
ST>File SubType:    UNKNOWN
ST>File Date:       00:00:00  00/00/0000

ST>     Struc has Child(ren). Size: 704 bytes.

ST>Children Type:      StringFileInfo
ST>Language/Code Page: 1033/1200
ST>CompanyName:        Oracle Corporation
ST>FileDescription:    Oracle SQL*PLUS
ST>FileVersion:        8.1.5.0.0
ST>InternalName:       SQLPLUSW
ST>LegalCopyright:     Copyright © Oracle Corporation 1999. All rights reserved.
ST>OriginalFilename:   SQLPLUSW.EXE
ST>ProductName:        SQL*PLUS
ST>ProductVersion:     8.1.5.0.0

ST>Children Type:      VarFileInfo
ST>Translation:        1033/1200
ST>


Спасибо, конечно, хотя это все равно не прокатит. У меня ProductVersion у sqlplusw.exe на 8.1.6, хотя при установке клиента говорилось, что версия 8.1.7.
А у OCI.dll все равно даже намека на версию нет.

ST>В общем случае, файл oci.dll может и не присутствовать в клиенте (в 7.3 его нет, и в 8.0, по-моему, тоже, хотя не уверен). Поэтому я привел информацию о sqlplusw.exe, который вроде бы есть во всех версиях.

То, что его в 7.3 нет это очень хорошо... Спасибо!
Re[4]: Как определить версию OracleClient ?
От: VVP Россия 67524421
Дата: 03.02.03 08:21
Оценка:
Здравствуйте, Sergey Ten, Вы писали:

ST>В общем случае, файл oci.dll может и не присутствовать в клиенте (в 7.3 его нет, и в 8.0, по-моему, тоже, хотя не уверен). Поэтому я привел информацию о sqlplusw.exe, который вроде бы есть во всех версиях.


Да вы чего ребята, с ума посходили?
OCI.DLL это основная клиентская библиотека. Если уж вы говорите, что УСТАНОВЛЕН КЛИЕНТ, то это значит, что файл OCI.DLL присутствует.
Никогда не бойся браться делать то, что делать не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник...
Re: Как определить версию OracleClient ?
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 03.02.03 08:35
Оценка:
Здравствуйте, Зеленый, Вы писали:

З>Как узнать версию ClientOracle програмным путем??


http://www.rsdn.ru/Forum/Message.aspx?mid=121470&only=1
Автор: PPA
Дата: 28.10.02
Re[5]: Как определить версию OracleClient ?
От: Sergey Ten http://www.fastalgo.com
Дата: 03.02.03 12:14
Оценка:
Здравствуйте, VVP, Вы писали:

VVP>Да вы чего ребята, с ума посходили?

VVP>OCI.DLL это основная клиентская библиотека. Если уж вы говорите, что УСТАНОВЛЕН КЛИЕНТ, то это значит, что файл OCI.DLL присутствует.

Вот состав клиента Oracle 7.3, реальная рабочая конфигурация:

CORE35.DLL
CORE35O.DLL
NASNSNT.DLL
NCRNT.DLL
NLNT.DLL
NLSRTL32.DLL
NMCPINT.DLL
NSNT.DLL
NTNT.DLL
NTTNT.DLL
ORA73.DLL
SQLTNSNT.DLL


OCI.DLL здесь нет. Основная клиентская библиотека — это та, которая загружена клиентом. Если обратил внимание, тот же SQLPLUSW.EXE не грузит OCI.DLL, а грузит ORACLIENT8.DLL. Кроме того, OCI.DLL не экспортирует функции UPI-интерфейса, которые активно используются программами типа IMP/EXP и OracleForms, а также тем же SQLPLUSW.EXE.

Клиентские приложения не должны закладываться на наличие OCI.DLL, если они не заточены под использование какой-то одной версии клиента. Убирай свой ноль.
Re[6]: Как определить версию OracleClient ?
От: VVP Россия 67524421
Дата: 03.02.03 12:16
Оценка:
Здравствуйте, Sergey Ten, Вы писали:

ST>Вот состав клиента Oracle 7.3, реальная рабочая конфигурация:

ST>OCI.DLL здесь нет. Основная клиентская библиотека — это та, которая загружена клиентом. Если обратил внимание, тот же SQLPLUSW.EXE не грузит OCI.DLL, а грузит ORACLIENT8.DLL. Кроме того, OCI.DLL не ...
ST>Клиентские приложения не должны закладываться на наличие OCI.DLL, если они не заточены под использование какой-то одной версии клиента. Убирай свой ноль.
Проверю это обязательно. Ноль убираю, извини погорячился
Никогда не бойся браться делать то, что делать не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник...
Re[2]: Как определить версию OracleClient ?
От: Sergey Ten http://www.fastalgo.com
Дата: 03.02.03 12:17
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>http://www.rsdn.ru/Forum/Message.aspx?mid=121470&only=1
Автор: PPA
Дата: 28.10.02


Код будет работать, если не надо отличать версию клиента, к примеру, 8.1.6 от 8.1.7 или 8.0.5 от 8.0.6
Re[2]: Как определить версию OracleClient ?
От: Аноним  
Дата: 03.02.03 16:25
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, Зеленый, Вы писали:


З>>Как узнать версию ClientOracle програмным путем??


OE>http://www.rsdn.ru/Forum/Message.aspx?mid=121470&only=1
Автор: PPA
Дата: 28.10.02


Мудрено, но это лучший ответ!
Спасибо!!!
(я почти так же и сделал )
Re[6]: Как определить версию OracleClient ?
От: Зеленый Россия  
Дата: 03.02.03 16:33
Оценка:
Здравствуйте, Sergey Ten, Вы писали:

ST>Здравствуйте, VVP, Вы писали:


VVP>>Да вы чего ребята, с ума посходили?

VVP>>OCI.DLL это основная клиентская библиотека. Если уж вы говорите, что УСТАНОВЛЕН КЛИЕНТ, то это значит, что файл OCI.DLL присутствует.

ST>Вот состав клиента Oracle 7.3, реальная рабочая конфигурация:


ST>
ST>CORE35.DLL
ST>CORE35O.DLL
ST>NASNSNT.DLL
ST>NCRNT.DLL
ST>NLNT.DLL
ST>NLSRTL32.DLL
ST>NMCPINT.DLL
ST>NSNT.DLL
ST>NTNT.DLL
ST>NTTNT.DLL
ST>ORA73.DLL
ST>SQLTNSNT.DLL
ST>


ST>OCI.DLL здесь нет.


А как же http://www.rsdn.ru/Forum/Message.aspx?mid=121470&only=1
Автор: PPA
Дата: 28.10.02

Там ведь используют Oci.dll для версии 7.3 и даже 7.0
Re[7]: Как определить версию OracleClient ?
От: Sergey Ten http://www.fastalgo.com
Дата: 03.02.03 17:03
Оценка:
Здравствуйте, Зеленый, Вы писали:

З>А как же http://www.rsdn.ru/Forum/Message.aspx?mid=121470&only=1
Автор: PPA
Дата: 28.10.02

З>Там ведь используют Oci.dll для версии 7.3 и даже 7.0

Код AllRoundAutomations проверяет наличие OCI.DLL, и если она присутствует, использует ее. Если ее нет, он делает FindFirst('ora*.dll, ...) — сюда попадут и ora73.dll, и oraclient8.dll. А проверка на наличие экспортируемух функций производится в той DLL, которая была найдена и загружена, это может быть и не OCI.DLL. Полный код DOA, который делает поиск клиентской DLL, можно посмотреть в файле OracleCI.pas.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.