开发者

deploy application with OraOLEDB provider

开发者 https://www.devze.com 2022-12-19 07:36 出处:网络
I developed an application that uses Delphi 7, ADO and ORACLE, the provider I use is OraOLEDB (I need use this provider because the BLOB fields support). now I want to distribute this application with

I developed an application that uses Delphi 7, ADO and ORACLE, the provider I use is OraOLEDB (I need use this provider because the BLOB fields support). now I want to distribute this application with the provider. I search the web to download the Oracle provider, but has a size of 174开发者_开发问答 mb. I need to install this file on all client machines ? there is a smaller distribution of this file?

UPDATE i am looking for a lightweigth (small) distribution of the OraOLEDB.

Thanks in advance.


I would opt to let the user supply it's client library himself. You avoid problems where there might me different oracle OleDb versions for different Oracle versions, licensing issues, installation issues etc. etc.

As fas as I know you need the package of 170 MB+.


It seems the distribution license (http://www.oracle.com/technology/software/popup-license/distribution-license.html) from that page allows you to redistribute the OleDB driver as long as you comply fully with that license. That is the official Oracle distribution - usually Oracle setups are large - if you don't want to include them on your distribution media you can simply point them to the download page.

Update: there is a smaller package in the InstanClient download page, look for Instant Client Package - ODAC here: http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html


I know a little bit about installing OLE DB providers, but I do not know anything about the Oracle provider, so this may not be practical. I see that the 174MB download includes a number of drivers (ODBC, .NET, OLE DB, etc.). I should be possible (but maybe not useful in the real world) to create your own distribution with the necessary files. One very nice thing about OLE DB is that it is typically "simple" to install. Running regsvr32 /i provider.dll will make the necessary registry updates to make it usable on a system. The providers I have used do not require a bucket full of registry hits like ODBC drivers often need.

So it might be possible to create your own distribution package. This site lists the files that are apparently necessary for the provider. I do not know if there are other "generic" files common to all Oracle client kits that might be necessary (that may be the part that would make this idea impractical).


This is the main problem when developing for oracle, except if you use ODAC, which has direct connection to oracle, without installing oracle client on clients' machines.

and it's much faster than using ADO or OLE DB providers.


Distributing Oracle client application can be a nightmare, even more today when you have 64 bit Windows.

Which version of the Client would you have to install? You need a 32 bit version for your Delphi application. But what if other programs do need having access to the 64 bit version? You need several ORACLE_HOME, with duplicated settings, or force you DotNet code to run in 32 bit mode.

I first wrote a Delphi wrapper using OleDB, then I realized how difficult it was to deploy it when using the Oracle DB. The same exact issue as yours...

Then I wrote a dedicated version, calling directly the OCI library. Speed was there (2 to 5 times faster than OleDB), with easy deployment.

You can use the latest version of the Oracle Instant Client provided by Oracle - see this download link - which allows you to run your applications without installing the standard (huge) Oracle client or having an ORACLE_HOME. Just deliver the dll files in the same directory than your application, and it will work.

The drawback of this solution is that it's not compatible with the DB aware components. But if you are using TQuery directly, then map the results in Delphi classes, it could be a great solution.

0

精彩评论

暂无评论...
验证码 换一张
取 消