使用OTL來訪問資料庫 – 牽著老婆滿街逛 – C++部落格

來源:互聯網
上載者:User

使用OTL來訪問資料庫 - 牽著老婆滿街逛 - C++部落格

使用OTL來訪問資料庫

來源:http://read.newbooks.com.cn/info/157869.html

OTL介紹:
OTL 是 Oracle, Odbc and DB2-CLI Template Library 的縮寫,是一個C++編譯中操控關聯式資料庫的模板庫,它目前幾乎支援所有的當前各種主流資料庫,例如Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等。OTL中直接操作Oracle主要是通過Oracle提供的OCI介面進行,進行操作DB2資料庫則是通過CLI介面來進行,至於MS的資料庫和其它一些資料庫,則OTL只提供了ODBC來操作的方式。當然Oracle和DB2也可以由OTL間接使用ODBC的方式來進行操縱。

在MS Windows and Unix 平台下,OTL目前支援的資料庫版本主要有:Oracle 7 (直接使用 OCI7), Oracle 8 (直接使用 OCI8), Oracle 8i (直接使用OCI8i), Oracle 9i (直接使用OCI9i), Oracle 10g (直接使用OCI10g), DB2 (直接使用DB2 CLI), ODBC 3.x ,ODBC 2.5。OTL最新版本為4.0,參見http://otl.sourceforge.net/,http://otl.sourceforge.net/otlv4_h.zip。
優點:
      a. 跨平台
      b. 運行效率高,與C語言直接調用API相當
      c. 開發效率高
      d. 部署容易,不需要ADO組件,不需要.net framework 等
     現提供有501個使用範例可參考http://otl.sourceforge.net/otl4_mssql_examples.htm。

 

OTL的使用:

   OTL使用起來很簡單,使用不同的資料庫連接(連接字串格式可以參考:http://www.connectionstrings.com/),主要是根據需要在程式開始的宏定義來指定的。 OTL是首先根據這個宏定義來初始化資料庫連接環境。 OTL中用來區分串連方式的宏定義主要有下面這些:
 OTL_ORA7, OTL_ORA8, OTL_ODBC, OTL_DB2_CLI, OTL_ODBC_MYSQL...

不同的宏對應的資料庫API,具體說明如下:

 

宏定義名

說明

OTL_DB2_CLI

for DB2 Call Level Interface (CLI)

OTL_INFORMIX_CLI

for Informix Call Level Interface for Unix (when  OTL_ODBC_UNIX is enabled).

OTL_IODBC_BSD

for ODBC on BSD Unix, when iODBC package is used

OTL_ODBC

for ODBC

OTL_ODBC_MYSQL

for MyODBC/MySQL. The difference between OTL_ODBC_MYSQL and OTL_ODBC is that transactional ODBC function calls are turned off for OTL_ODBC_MYSQL, since MySQL does not have transactions

OTL_ODBC_
POSTGRESQL

for the PostgreSQL ODBC driver 3.5 (and higher) that are connected to PostgerSQL 7.4 / 8.0  (and higher)  servers.

OTL_ODBC_UNIX

for ODBC bridges in Unix

OTL_ODBC_zOS

for ODBC on IBM zOS.

OTL_ODBC_XTG_IBASE6

for Interbase 6.x via XTG Systems'  ODBC driver. The reason for introducing this #define is that the ODBC driver is the only Open Source ODBC driver for Interbase. Other drivers, like Easysoft's ODBC for Interbase, are commercial products, and it beats the purpose of using Interbase, as an Open Source.database server.

OTL_ORA7

for OCI7

OTL_ORA8

for OCI8

OTL_ORA8I

for OCI8i

OTL_ORA9I

for OCI9i. All code that compiles and works under #define OTL_ORA7, OTL_ORA8, and OTL_ORA8I, should work when OTL_ORA9I is used

OTL_ORA10G

for OCI10g. All code that compiles and works  under #define OTL_ORA7, OTL_ORA8, OTL_ORA8I, OTL_ORA9I, should work with OTL_ORA10G.

OTL_ORA10G_R2

for OCI10g, Release 2 (Oracle 10.2). All code that compiles and works  under #define OTL_ORA7, OTL_ORA8, OTL_ORA8I, OTL_ORA9I, and OTL_ORA10G should work with OTL_ORA10G_R2 .

 

  在編譯OTL的程式時,需要使用到相應的資料庫API,這就要程式在編譯時間聯結lib庫檔案,不同的資料庫對應的lib檔案所在位置各不相同,下面是分別在windows與Unix下的資料庫API所需要的標頭檔及lib檔案所在的位置列表:

 

API

API header files for Windows

API libraries for Windows

OCI7

In <ORACLE_HOME>\oci\include

 <ORACLE_HOME>\oci\lib\<compiler_specific>\ociw32.lib

OCI8

In <ORACLE_HOME>\oci\include

 <ORACLE_HOME>\oci\lib\<compiler_specific>\oci.lib

OCI8i

In <ORACLE_HOME>\oci\include

 <ORACLE_HOME>\oci\lib\<compiler_specific>\oci.lib

OCI9i

In <ORACLE_HOME>\oci\include

 <ORACLE_HOME>\oci\lib\<compiler_specific>\oci.lib

OCI10g

In <ORACLE_HOME>\oci\include

 <ORACLE_HOME>\oci\lib\<compiler_specific>\oci.lib

ODBC

Normally, in one of the C++ compiler system directories, no need to include explicitly.

Normally, in one of the C++ compiler system directories: odbc32.lib

DB2 CLI

In <DB2_HOME>\include

<DB2_HOME>\lib\db2api.lib
<DB2_HOME>\lib\db2cli.lib

 

 

 

  如果在windows下操縱MS的 資料庫,使用MS VC++來編譯OTL程式,就非常簡單了,不用另外去找ODBC32.lib,VC的編譯器中已經預設link到工程中了,具體請看如何編譯OTL:http://otl.sourceforge.net/otl3_compile.htm。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.