OracleCI and Oracle11g

We have a requirement to determine which version of the client the user has installed. I have version 4.1 installed. I built a small app that dislays information using the following OracleCI code:

Code:
var
  MyList: TStringList;
  Index: Integer;
begin
  MyList := TStringList.Create;

  lblOraHomeName.Caption  := OracleCI.OracleHome;
  lblTNSFilename.caption  := OracleCI.TNSNames;

  OracleCI.BuildOracleHomeList;

  lstOraHomeList.Items.Assign(OracleCI.OracleHomeList);

  OracleCI.BuildOracleAliasList;
  lstOraAliasList.Items.Assign(OracleCI.OracleAliasList);

  ckbxoci80.Checked := OracleCI.OCI80;
  ckbxoci81.Checked := OracleCI.OCI81;
  ckbxoci90.Checked := OracleCI.OCI90;
  ckbxoci92.Checked := OracleCI.OCI92;

  lblDLLFilename.caption  := OracleCI.OCIDLL;
  lblOCIVersion.Caption   := OracleCI.OCIVersion;

end;
1) The OracleCI.OracleHome returnes 'D:\oracle\product\11.1.0\client_1' which is correct.
2) The OracleCI.OracleHomeList returns the following:
  • 'OraClient10g_home1'
  • 'OraClient11g_home1'
  • 'OraHome92'
  • 'XE'
which is correct (I have XE, 9, 10, and 11 clients installed.
3) The OracleCI.OCIDLL returns 'D:\oracle\product\11.1.0\client_1\bin\oci.dll' which is correct.
4) Finally, the OracleCI.OCIVersion returns 'version 9.2' which is NOT correct.

Is there going to be a new release that will correctly reports the version of the OCI.dll? The other solution is to try to read the version number directly from the oci.dll returned by the OracleCI.OCIDLL. This may not be possible due to security configurations applied to the client machines (they can't even update their TNSNames.ora file).

Thanks
Richard Anderson
 
The OCIVersion only indicates which functionality Direct Oracle Access will use. The 10.1, 10.2 and 11.1 clients are treated exactly the same as a 9.2 client (in other words, no 10.1, 10.2, or 11.1 specific functionality is used).
 
Back
Top