O$>>>Как определить версию установленного на машине
клиента Oracle (программно разумеется) ?
PPA>>А под чем работаешь?
O$>windows 98, nt4,2k, xp (или я вопроса не понял?)
Правильно, под другими ос это делается не так.
А тут из реестра достаешь путь к ORACLE_HOME
От туда+\bin динамически грузишь oci*.dll
А потом получаешь функции по такому алгоритму:
OCI70 := True;
GetProc(HDLL, OCI70, @orlon, 'orlon');
OCI72 := OCI70;
GetProc(HDLL, OCI72, @olog, 'olog');
OCI73 := OCI72;
GetProc(HDLL, OCI73, @opinit, 'opinit');
// OCI 8 Relational functions
OCI80Detected := True;
GetProc(HDLL, OCI80Detected, @OCIInitialize, 'OCIInitialize');
// External Procedure functions (OCI 805)
ExtProcDetected := OCI80Detected;
GetProc(HDLL, ExtProcDetected, @OCIExtProcGetEnv, 'ociepgoe');
// New OCI 8.1 functions
OCI81 := OCI81Detected;
GetProc(HDLL, OCI81Detected, @OCIEnvCreate, 'OCIEnvCreate');
GetProc(HDLL, OCI81Detected, @OCIDirPathAbort, 'OCIDirPathAbort');
.......
function OCIVersion: string;
begin
if OCI81 then Result := 'Version 8.1'
else
if OCI80 then Result := 'Version 8.0'
else
if OCI73 then Result := 'Version 7.3'
else
if OCI72 then Result := 'Version 7.2'
else
if OCI70 then Result := 'Version 7.0'
p.s.
Код взят из DOA (c) Allround Automations