程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> ODAC應用技巧(一)使用ODAC的Net方式

ODAC應用技巧(一)使用ODAC的Net方式

編輯:Oracle數據庫基礎

大多數應用程序使用 OCI 的ODAC 標准方式來連接 Oracle 數據庫服務器。這是使用第三方開發語言設計 Oracle 應用程序最常用的方法。 所有的 OCI 接口都作為內部庫來使用,使得編譯生成的應用程序非常小。但是,這需要在客戶機上安裝 Oracle 客戶端軟件,這使得安裝和管理要花費額外的開銷。 有時,安裝 Oracle 客戶端程序甚至是不可能的。 例如,如果你需要在遠程計算機上設置你的應用程序,你不能提供特殊的文件支持。

ODAC Net 允許你的應用程序直接通過 TCP/IP 協議來連接 Oracle,而不需要 Oracle 客戶端軟件。運行使用 ODAC Net 的應用程序,僅需要有一個支持 TCP/IP 協議的操作系統。 

使用 ODAC Net 連接 Oracle 服務器,你需要知道 Oracle 服務器的地址,監聽端口號以及數據庫實例名稱。

在你的應用程序中使用 Net 選項前,你只需要設置 TOraSession 對象的選項 Net 為 True 且指定它的Server 屬性為指定的數據庫。如果使用 ODAC 的標准方式通過 OCI 來連接數據庫,你必須設置 Server 屬性為 TNS 別名,但現在使用 ODAC 的 Net 選項,你只需要指定數據庫字符串,格式如下: Host:Port:SID.

這裡, Host 指服務器地址, Port 指服務器監聽端口號, SID 指特定的系統實例名稱。

這裡有個例子示范不使用 OCI 而 連接數據庫:

var

Session: TOraSession;

. . .

Session.Options.Net := True;

Session.Username := 'Scott';

Session.PassWord := 'tiger';

Session.Server := '205.227.44.44:1521:orcl';

Session.Connect;

注意:這些是你的應用程序要支持 Net 選項時所必須的。你不需要重寫應用程序的其它部分。除此之外,你還可以在任何時候通過 OCI 連接 Oracle 。要實現它,你僅需要設置 TOraSession.Options.Net 選項為 False.

OCI 與 Net:

使用 ODAC 標准方式和 Net 方式編譯的應用程序,在程序大小和運行速度上非常相似。使用 Net 選項在安全方面,與使用 OCI 的 Oracle 的加密方式並不相同。 Net 使用 DES 來驗證安全性,現在它並不支持 Oracle 的加密方式。

ODAC Net 的優勢:

- 不需要安裝和管理 Oracle 客戶端軟件;

- 減少系統需求。

ODAC Net 選項的限制:

僅支持通過 TCP/IP 協議來連接 Oracle;

不支持 Oracle 8 的對象,數組;

不支持 TOraLoader 的直接裝載;

請注意:我們並不能保證 ODAC Net 可以在所有網絡上的所有 Oracle 服務器上運行。我們使用 Net 選項在本地局域網上測試了 Windows 平台上 Oracle 7.3 以後的所有版本。

ODAC 通過 OCI 可以運行在所有的 Oracle 服務器上。Net 選項在 Window 及 Linux 平台上的所有Oracle 服務器上被測試過。我們不能保證它可以運行在其它平台上。

使用防火牆時可能會出現驗證問題。

Net 選項在本地語言下運行時會有些不同。它不支持客戶端的 NLS 轉換。

BreakExec 過程不能運行。

TOraLoader 組件不在運行在直接路徑接口模式(lmDirect 模式)。

Net 選項還有一些其它問題。例如,進行截斷日期比較時會出現錯誤。

SELECT * FROM scott.emp WHERE hiredate >= TRUNC(:hiredate)

執行該查詢時會出現 ORA-00932 錯誤: 不支持的數據類型。

如果沒有上面的限制,你可以通過 OCI 在任何時間關閉連接。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved