2010-02-01 42 views
2

我開發了一個使用Delphi 7,ADO和ORACLE的應用程序,我使用的提供程序是OraOLEDB(我需要使用此提供程序,因爲BLOB字段支持)。現在我想與提供者分發這個應用程序。我在網上搜索下載Oracle provider,但尺寸爲174 mb。我需要在所有客戶機上安裝此文件?這個文件有一個較小的分佈?部署OraOLEDB提供程序的應用程序

UPDATE 我正在尋找輕量級(小)的OraOLEDB分佈。

在此先感謝。

+0

如果您的客戶已經是Oracle用戶,他們是否已經安裝了Oracle客戶端?如果是這樣,那麼可能沒有其他任何東西可供您安裝。 – 2010-02-01 19:52:25

+0

@Scott OleDB Oracle提供程序不是標準Oracle Client安裝程序的一部分。這是這個問題。 – 2011-07-10 08:01:09

回答

3

我會選擇讓用戶自己提供它的客戶端庫。您避免出現問題,其中可能有我不同的Oracle OleDb的版本不同的Oracle版本,許可問題,安裝問題等等,等等

由於FAS,因爲我知道你需要170 MB +的包。

1

看來該網頁上流通許可證(http://www.oracle.com/technology/software/popup-license/distribution-license.html)允許,只要你與許可證完全符合您重新分配OLEDB驅動程序。這是官方的Oracle發行版 - 通常Oracle的安裝量很大 - 如果您不想將它們包含在發行版媒體上,只需將它們指向下載頁即可。

更新:有在InstanClient下載頁面更小的封裝,尋找即時客戶端軟件包 - ODAC這裏:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html

+0

我相信,我正在尋找一個輕量級的OraOLEDB發行版。 – Salvador 2010-02-07 01:58:15

+0

看到我的更新,該包是45mb的zip文件。 – 2010-02-09 20:23:13

+0

當有人試圖幫助你可以看看答案,也許接受它。 – 2010-02-17 11:35:38

0

爲Oracle開發時,除非你使用ODAC這是主要的問題,直接連接到oracle,,而不在客戶機上安裝oracle客戶機

它比使用ADO或OLE DB提供程序要快得多。

+0

感謝您的推薦,但我需要使用ADO而不是其他技術。 – Salvador 2010-02-07 01:54:29

+0

由於Oracle的OCI非常優化並且與數據庫引擎相近,並且缺少一些高級功能(如客戶端請求緩存),所以直接SQL * Net連接不必更快。例如,我們的OCI包裝比使用OleDB/ADO提供商的版本快2到5倍。 – 2011-07-10 08:39:09

+0

@ A.Bouchez,我的意思是速度更快,因爲它繞過了ado和oledb層。不是因爲它沒有使用OCI就使用oracle。 – 2011-07-10 11:04:35

1

我知道如何安裝OLE DB提供程序一點點,但我不知道有關Oracle提供什麼,所以這可能是不實際的。我看到174MB下載包含了許多驅動程序(ODBC,.NET,OLE DB等)。我應該有可能(但在現實世界中可能沒有用)用必要的文件創建你自己的發行版。關於OLE DB的一個非常好的事情是它通常「安裝簡單」。運行regsvr32 /i provider.dll將進行必要的註冊表更新以使其在系統上可用。我使用的提供程序不需要像ODBC驅動程序經常需要的充滿註冊表匹配的存儲桶。

因此可能創建自己的分發包。 This site列出了供應商顯然需要的文件。我不知道是否還有其他所有Oracle客戶端工具包可能需要的「通用」文件(這可能是導致此想法不切實際的部分)。

+0

我認爲這是一個輕量級OLEDB提供商的正確方向。 – 2011-07-10 08:40:25

0

分佈式Oracle客戶端應用程序可能是一場噩夢,如果您有64位Windows,今天更是如此。

您需要安裝哪個版本的客戶端?您的Delphi應用程序需要32位版本。但是如果其他程序確實需要訪問64位版本呢?您需要幾個ORACLE_HOME,重複設置,或強制DotNet代碼以32位模式運行。

我第一次寫一個Delphi wrapper using OleDB,然後我意識到這是多麼困難使用Oracle數據庫時,部署它。與你一樣的確切問題...然後我寫了一個dedicated version, calling directly the OCI library。速度在那裏(比OleDB快2到5倍),易於部署。

您可以使用最新版本的甲骨文提供的Oracle即時客戶端的 - 見this download link - 它允許你無需安裝標準(巨大)的Oracle客戶端或擁有ORACLE_HOME運行應用程序。只要將dll文件放在與您的應用程序相同的目錄下,它就可以工作。

此解決方案的缺點是它與數據庫感知組件不兼容。但是,如果您直接使用TQuery,然後將結果映射到Delphi類中,那麼它可能是一個很好的解決方案。