OCCI編程.doc_第1頁
OCCI編程.doc_第2頁
OCCI編程.doc_第3頁
OCCI編程.doc_第4頁
OCCI編程.doc_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

OCCI 編程編程 前前 言言 開發(fā)基于 Oracle 數(shù)據(jù)庫的應(yīng)用程序,我們可以選擇多種工具,不僅可以用一般的數(shù)據(jù)庫開 發(fā)技術(shù),諸如 ADO(ActiveX Data Objects)、ODBC(Open DataBaseConnectivity)等等,同時,也 可以用 Oracle 公司提供的專門的開發(fā)工具,諸如 Pro C_C+,OCI(Oracle Call Intedace), OCCI(Oracle C+ Call Intedace)等等。比較這幾種方式,前者因?yàn)槭峭ㄓ眉夹g(shù),開發(fā)起來比較 容易,但是有一個致命的弱點(diǎn)就是諸如 ADO 之類的通用技術(shù)的速度太慢,如果我們要開發(fā) 管理海量數(shù)據(jù)的數(shù)據(jù)庫,比如影像數(shù)據(jù)庫,那么,這種速度我們是不能忍受的。而 OCCI 雖 然開發(fā)起來難度大一些,但是它的速度極快,而且是一種底層接口,幾乎可以操縱 Oracle 數(shù)據(jù)庫的任何對象。 目目 錄錄 前前 言言.2 目目 錄錄.3 1、OCCI 入門入門(INTRODUCTION TO OCCI).5 1.1、OCCI 綜述(OVERVIEW OF OCCI) .5 1.1.1、使用 OCCI 的好處(Benefits of OCCI) .5 1.1.2、建立 OCCI 應(yīng)用程序(Building an OCCI Application).5 1.1.3、OCCI 的功能(Functionality of OCCI).6 1.1.4、程式化與非程式化的元素(Procedural and Nonprocedural Elements).7 1.2、SQL 語句執(zhí)行(PROCESSING OF SQL STATEMENTS) .8 1.3、PL/SQL 概述(OVERVIEW OF PL/SQL).8 1.4、特殊的 OCCI/SQL 條款(SPECIAL OCCI/SQL TERMS) .8 2、安裝和升級、安裝和升級(INSTALLATION AND UPGRADING) .8 3、編程相關(guān)、編程相關(guān)(RELATIONAL PROGRAMMING).8 3.1、連接數(shù)據(jù)庫(CONNECTING TO A DATABASE).9 3.1.1、創(chuàng)建和終結(jié)一個環(huán)境(Creating and Terminating an Environment).9 3.1.2、打開和關(guān)閉一個連接(Opening and Closing a Connection) .10 3.2、共享數(shù)據(jù)庫連接-連接池(POOLING CONNECTIONS).10 3.2.1、使用連接池(Using Connection Pools) .10 3.2.1.1、創(chuàng)建一個連接池(Creating a Connection Pool).10 3.2.1.2、代理連接(Proxy Connections).11 3.2.2、無狀態(tài)連接池(Stateless Connection Pooling).12 3.2.3、數(shù)據(jù)庫常駐連接池(Database Resident Connection Pooling).17 3.2.3.1、管理數(shù)據(jù)庫常駐連接池(Administrating Database Resident Connection Pools) .17 3.2.3.1、使用數(shù)據(jù)庫常駐連接池(Using Database Resident Connection Pools) .17 3.3、執(zhí)行 DDL SQL 和 DML 語句(EXECUTING SQL DDL AND DML STATEMENTS).17 3.3.1、創(chuàng)建一個 Statement 對象(Creating a Statement Object).17 3.3.2、創(chuàng)建一個執(zhí)行 SQL 命令的對象(Creating a Statement Object that Executes SQL Commands).17 3.3.2.1、創(chuàng)建一個數(shù)據(jù)庫表(Creating a Database Table).17 3.3.2.2、往數(shù)據(jù)庫表中插入數(shù)據(jù)(Inserting Values into a Database Table) .18 3.3.3、重新使用一個 Statement 對象(Reusing the Statement Object) .18 3.3.4、終止一個 Statement 對象(Terminating a Statement Object).18 3.4、在 OCCI 環(huán)境中的 SQL 語句的類型(TYPES OF SQL STATEMENTS IN THE OCCI ENVIRONMENT).18 3.4.1、標(biāo)準(zhǔn)語句(Standard Statements) .19 3.4.2、參數(shù)化的語句(Parameterized Statements) .19 3.4.3、可調(diào)用語句(Callable Statements) .20 3.4.3.1、以數(shù)組作為參數(shù)的可調(diào)用語句(Callable Statements with Arrays as Parameters).20 3.4.4、流化的讀和寫(Streamed Reads and Writes).21 3.4.4.1、流模型中的綁定數(shù)據(jù); SELECT/DML 和 PL/SQL(Binding Data in a Streaming Mode; SELECT/DML and PL/SQL).22 3.4.4.2、在流模型中獲取數(shù)據(jù): PL/SQL(Fetching Data in a Streaming Mode: PL/SQL).23 3.4.4.3、在 ResultSet 結(jié)果集流模型中獲取數(shù)據(jù)(Fetching Data in Streaming Mode: ResultSet).24 3.4.4.4、和多重流一起工作(Working with Multiple Streams) .24 3.4.5、行更改迭代(Modifying Rows Iteratively) .25 3.4.5.1、設(shè)置最大重復(fù)次數(shù)(Setting the Maximum Number of Iterations) .26 3.4.5.2、設(shè)置參數(shù)最大長度(Setting the Maximum Parameter Size).26 3.4.5.3、執(zhí)行一個迭代操作(Executing an Iterative Operation).26 3.4.5.4、執(zhí)行迭代用法提示(Iterative Execution Usage Notes).27 3.5、執(zhí)行 SQL 查詢(EXECUTING SQL QUERIES).27 3.5.1、使用結(jié)果集(Using the Result Set).27 3.5.2、特定查詢(Specifying the Query).29 3.5.3、設(shè)置預(yù)處理事項(xiàng)優(yōu)化性能(Optimizing Performance by Setting Prefetch Count).29 3.6、執(zhí)行動態(tài)語句(EXECUTING STATEMENTS DYNAMICALLY).30 3.6.1、狀態(tài)定義(Status Definitions).31 3.6.1.1、UNPREPARED .31 3.6.1.2、PREPARED.31 3.6.1.3、RESULT_SET_AVAILABLE.31 3.6.1.4、UPDATE_COUNT_AVAILABLE.32 3.6.1.5、NEEDS_STREAM_DATA.32 3.6.1.6、STREAM_DATA_AVAILABLE.33 3.7、提交事務(wù)(COMMITTING A TRANSACTION).33 3.8、緩存語句(CACHING STATEMENTS).34 3.9、異常處理(HANDLING EXCEPTIONS).37 3.9.1、處理空的 NULL 和截斷的數(shù)據(jù)(Handling Null and Truncated Data).38 1、OCCI 入門入門(Introduction to OCCI) 1.1、OCCI綜述綜述(Overview of OCCI) OCCI是一個提供了C+應(yīng)用程序使用ORACLE數(shù)據(jù)庫中數(shù)據(jù)的API接口,OCCI能夠使C+編程 者最大限度利用ORACLE數(shù)據(jù)庫的操作,包括SQL語句處理和對象處理 OCCI提供以下內(nèi)容 通過有效的利用系統(tǒng)內(nèi)存和網(wǎng)絡(luò)連接使應(yīng)用程序達(dá)到最高性能 可升級應(yīng)用程序服務(wù)于不斷增長的用戶數(shù)和請求數(shù) 運(yùn)用ORACLE數(shù)據(jù)庫對象,包括客戶端允許使用的數(shù)據(jù)庫對象,全面支持應(yīng)用開發(fā) 簡單的用戶驗(yàn)證和密碼管理 n-tiered體系架構(gòu)驗(yàn)證 對在two-tier clent/server環(huán)境中或者是multitiered環(huán)境中,采用一致的接口進(jìn)行動態(tài)連接管 理和事物管理 封閉和接口不透明處理 OCCI一個提供訪問標(biāo)準(zhǔn)數(shù)據(jù)的庫文件和能夠以C+應(yīng)用程序運(yùn)行時鏈接的運(yùn)態(tài)鏈接庫的形 式retrieval函數(shù).這就消除了需要嵌入SQL或者PL/SQL包括的第三代語言。 1.1.1、使用、使用 OCCI 的好處的好處(Benefits of OCCI) OCCI 提供其它訪問 ORACLE 數(shù)據(jù)庫所不具備的重要優(yōu)勢 利用c+和對象導(dǎo)向編程范例 簡單易用 與JDBC比較相近,容易學(xué)會 可以象操作C+實(shí)例一樣操作用戶定義的數(shù)據(jù)庫對象 1.1.2、建立、建立 OCCI 應(yīng)用程序應(yīng)用程序(Building an OCCI Application) 如圖1-1所示,你可以象編譯和鏈接一個沒有數(shù)據(jù)庫的應(yīng)用程序一樣來編譯和鏈接一個OCCI應(yīng) 用程序 圖圖 11 OCCI開發(fā)步驟開發(fā)步驟 ORACLE支持大多數(shù)流行的第三方編譯。鏈接一個OCCI程序的細(xì)節(jié)由于系統(tǒng)不同而不同,在某 些平臺上,除OCCI庫外,可能需要包括其它的庫文件鏈接你的OCCI程序。 1.1.3、OCCI 的功能的功能(Functionality of OCCI) OCCI提供下列功能 API設(shè)計可升級,多線程應(yīng)用能夠提供大用戶量的安全使用 提供SQL訪問函數(shù),管理數(shù)據(jù)庫訪問,執(zhí)行SQL語句,和重新得到操作ORACLE數(shù)據(jù)庫服 務(wù)的對象 為了象處理屬性一樣處理ORACLE類型,提供數(shù)據(jù)類型映射和處理函數(shù) 先進(jìn)的消息管理隊列 XA compliance for distributed transaction supportXA符合分布式支持 Statement caching of SQL and PL/SQL queriesStatement緩存SQL和PL/SQL查詢 Connection pooling for managing multiple connections可管理多種多樣連接的連接池 Globalization and Unicode support to customize applications for international and regional language requirement全面的Unicode支持國際化和區(qū)域化定制程序 Object Type Translator Utility事物類型翻譯功能 Transparent Application Failover support清晰的程序錯誤處理支持 1.1.4、程式化與非程式化的元素、程式化與非程式化的元素(Procedural and Nonprocedural Elements) Oracle C+ Call Interface (OCCI) enables you to develop scalable, multithreaded applications on multitiered architectures that combine nonprocedural data access power of structured query language (SQL) with the procedural capabilities of C+. In a nonprocedural language program, the set of data to be operated on is specified,but what operations will be performed, or how the operations are to be carried out, is not specified. The nonprocedural nature of SQL makes it an easy language to learn and use to perform database transactions. It is also the standard language used to access and manipulate data in modern relational and object-relational database systems. Oracle C+ 調(diào)用接口(OCCI)允許你用程式化的C+和非程式化的具有強(qiáng)大數(shù)據(jù)操作能力的SQL 引擎開發(fā)在多種多樣架構(gòu)平臺上的可升級、多線程程序。在非程式化語言的程序中,結(jié)果集是 特定的,但是操作執(zhí)行或者拋出操作,是非特定的。非程式化的SQL使其容易學(xué)習(xí)和迎來執(zhí)行 數(shù)據(jù)庫事務(wù)。它同時也是當(dāng)前關(guān)系模型數(shù)據(jù)庫和對象-關(guān)系模型數(shù)據(jù)庫操作數(shù)據(jù)和產(chǎn)生數(shù)據(jù)的標(biāo) 準(zhǔn)語句。 In a procedural language program, the execution of most statements depends on previous or subsequent statements and on control structures, such as loops or conditional branches, which are not available in SQL. The procedural nature of these languages makes them more complex than SQL, but it also makes them very flexible and powerful. 在程式化語言程序中,大多數(shù)語句的執(zhí)行依靠先前的或者子程式語句和控制結(jié)構(gòu),例如循環(huán)和 條件分支,這些在SQL不適用。這些程式化模型的語言致使它們遠(yuǎn)比SQL復(fù)雜,但是也使得它 們非常靈活和強(qiáng)大。 The combination of both nonprocedural and procedural language elements in an OCCI program provides easy access to an Oracle database in a structured programming environment. 程式化與非程式化元素的聯(lián)合使得OCCI程序在程式化的環(huán)境中非常容易操作Oracle數(shù)據(jù)庫。 OCCI supports all SQL data definition, data manipulation, query, and transaction control facilities that are available through an Oracle database server. For example, an OCCI program can run a query against an Oracle database. The queries can require the program to supply data to the database by using input (bind) variables, as follows: OCCI通過一個Oracle數(shù)據(jù)庫服務(wù)器支持所有SQL數(shù)據(jù)定義,數(shù)據(jù)控制。查新,事務(wù)控制能力。 例如,一個OCC程序可以執(zhí)行一個Oracle數(shù)據(jù)庫的查詢。查詢可以通過程序綁定變量為Oracle數(shù) 據(jù)庫提供數(shù)據(jù),如下所示: SELECT name FROM employees WHERE empno = :empnumber In this SQL statement, empnumber is a placeholder for a value that will be supplied by the application. 在這條SQL語句中, empnumber是程序所提供數(shù)據(jù)值的一個占位符。 In an OCCI application, you can also take advantage of PL/SQL, Oracles procedural extension to SQL. The applications you develop can be more powerful and flexible than applications written in SQL alone. OCCI also provides facilities for accessing and manipulating objects in an Oracle database server. 在 OCCI 程序中,你也可以使用 SQL 的延伸 PL/SQL,Oracle 存儲過程。這樣你開發(fā)的程序?qū)?會比只使用 SQL 功能更強(qiáng)大和靈活。OCCI 也提供了 Oracle 數(shù)據(jù)庫服務(wù)器操作和控制事務(wù)的能 力。 1.2、SQL語句執(zhí)行語句執(zhí)行(Processing of SQL Statements) 1.3、PL/SQL 概述概述(Overview of PL/SQL) 1.4、特殊的、特殊的OCCI/SQL條款條款(Special OCCI/SQL Terms) 2、安裝和升級、安裝和升級(Installation and Upgrading) 首先,為了防止某些動態(tài)鏈接庫出問題,建議在安裝了 Oracle 客戶端的機(jī)器上 進(jìn)行開發(fā)、運(yùn)行。 其次,使用 OCCI 開發(fā)的程序,需要使用 Oracle 客戶端的 tnsnames.ora 這個配 置文件,所以在開發(fā)前需要使用 netca 來配置好相關(guān)內(nèi)容。 第三,Linux 下的系統(tǒng)環(huán)境變量需要設(shè)置好。需要設(shè)置的環(huán)境變量包括 ORACLE_HOME、ORACLE_SID、TNS_ADMIN,其中 TNS_ADMIN 指定到 tnsnames.ora 所在的文件夾。 3、編程相關(guān)、編程相關(guān)(Relational Programming) 本章描述運(yùn)用OCCI進(jìn)行C+應(yīng)用程序編程處理存儲在關(guān)系統(tǒng)數(shù)據(jù)庫中數(shù)據(jù)的基本 要素。 本章包括以下主題: 連接數(shù)據(jù)庫 共享數(shù)據(jù)庫連接 執(zhí)行SQL DDL和DML語句 在OCCI環(huán)境中SQL語句的類型 執(zhí)行SQL查詢 執(zhí)行動態(tài)語句 提交事物 捕捉語句 處理異常 3.1、連接數(shù)據(jù)庫、連接數(shù)據(jù)庫(Connecting to a Database) 關(guān)于應(yīng)用程序連接數(shù)據(jù)庫你有許多不同的選擇 3.1.1、創(chuàng)建和終結(jié)一個環(huán)境、創(chuàng)建和終結(jié)一個環(huán)境(Creating and Terminating an Environment) 所有的OCCI進(jìn)程處理都與Environment類有關(guān)。一個OCCI環(huán)境提供應(yīng)用模式和用戶定義內(nèi)存管理函數(shù), 下面代碼示例顯示如何創(chuàng)建一個OCCI環(huán)境: Environment *env = Environment:createEnvironment(); 所有的OCCI對象都有createxxx 方法來創(chuàng)建(連接,連接池,聲明)必須被明確的終止,適當(dāng)?shù)臅r候, 你必須顯示的終止環(huán)境,下面的代碼示例如何終止一個OCCI環(huán)境 Environment:terminateEnvironment(env); 另外,一個OCCI環(huán)境應(yīng)該有一個比下列對象類型有更大的范圍,如Agent, Bytes, Date, Message, IntervalDS, IntervalYM, Subscription 和 Timestamp。這個規(guī)則不適用于 BFile, Blob和Clob對象。這個規(guī)則的示例如下: const string userName = SCOTT; const string password = TIGER; const string connectString = ; Environment *env = Environment:createEnvironment(); Connection *conn = env-createConnection( userName, password, connectString); Statement *stmt = conn-createStatement( SELECT blobcol FROM mytable); ResultSet *rs = stmt-executeQuery(); rs-next(); Blob b = rs-getBlob(1); cout Length of BLOB : terminateStatement(stmt); env-terminateConnection(conn); Environment:terminateEnvironment(env); 這個應(yīng)用需要訪問全局對象,如靜態(tài)或者全局變量,這些對象必須在環(huán)境變量終止前設(shè)置成NULL,在前 面提到的例子中,如果b是一個全局變量,那么b.setNull()調(diào)用優(yōu)先在terminateEnvirorment() 之前調(diào)用。 你可以指定應(yīng)用程序中createEnviroment方法的參數(shù) 運(yùn)行的線程環(huán)境(THREADED_MUTEXED 或者 THREADED_UNMUTEXED) 運(yùn)用對象 這個模式允許你對每個環(huán)境獨(dú)立設(shè)定 3.1.2、打開和關(guān)閉一個連接、打開和關(guān)閉一個連接(Opening and Closing a Connection) Environment 類是一個創(chuàng)建 Connection 對象的類工廠,首先你需要創(chuàng)建一個 Environment 實(shí)例,然后通過 createConnection()方法能夠讓用戶連接到數(shù)據(jù)庫。 下面的代碼示例創(chuàng)建了一個 Environment 實(shí)例,然后用它創(chuàng)建一個數(shù)據(jù)庫連接,用戶名為 scott, 密碼 tiger. Environment *env = Environment:createEnvironment(); Connection *conn = env-createConnection(scott, tiger); 你必須在工作完成以后用如下代碼所示的terminateConnection()方法顯示關(guān)閉連接。另外,OCCI環(huán) 境也應(yīng)該被 顯示終止 你必須記住所有的對象(Refs, Bfiles, Produces, Consumers等等),在Connection終止前,那些內(nèi)部 范圍的實(shí)例,必須被顯示的終止。 env-terminateConnection(conn); Environment:terminateEnvironment(env); 3.2、共享數(shù)據(jù)庫連接、共享數(shù)據(jù)庫連接-連接池連接池(Pooling Connections) 本節(jié)討論如何利用 OCCI 的連接池特性,包括以下信息內(nèi)容: Creating a Connection Pool Stateless Connection Pooling 這兩個連接池的主要區(qū)別是StatelessConnectionPools 用于應(yīng)用程序不需要考慮狀 態(tài),這些應(yīng)用能夠通過運(yùn)用預(yù)鑒別連接提高性能 3.2.1、使用連接池、使用連接池(Using Connection Pools) 許多中級應(yīng)用程序,數(shù)據(jù)庫的連接要求能夠處理大量的進(jìn)程,由于每個進(jìn)程只存活較短的時間, 所以為每個進(jìn)程打開數(shù)據(jù)庫連接導(dǎo)致的結(jié)果是連接的利用率低和較低的性能。 通過使用連接池特性,應(yīng)用程序可以創(chuàng)建一個少量的連接應(yīng)對大量的進(jìn)程,這將有助于你更有 效的利用數(shù)據(jù)庫的資源。 3.2.1.1、創(chuàng)建一個連接池、創(chuàng)建一個連接池(Creating a Connection Pool) 為了創(chuàng)建一個連接池,可以用createConnectionPool()方法 virtual ConnectionPool* createConnectionPool( const string 在上面的示例中可以使用下列參數(shù): poolUserName: 連接池的屬主 poolPassword: 獲得進(jìn)入連接池的密碼 onnectString:指定連接池與數(shù)據(jù)庫服務(wù)關(guān)聯(lián)的數(shù)據(jù)庫名 nConn:連接池創(chuàng)建后開放的最少連接數(shù) maxConn:連接池所能支持的最大連接數(shù),當(dāng)連接池中的連接數(shù)達(dá)到最大值時,一個OOCI方法需要 一個連接時,必須等到有一個連接釋放,除非在連接池中設(shè)置了setErrorOnBusy()錯誤調(diào)度 incrConn:當(dāng)所有的連接都處理忙碌狀態(tài)時,又有新的請求需要一個連接,可以設(shè)置額外的連接數(shù)。 這個增量只有在當(dāng)所有的連接數(shù)小于最大連接數(shù)時,才會允許在連接池中打開。 下面的代碼例子示范你如何創(chuàng)建一個連接池 const string connectString = ; unsigned int maxConn = 5; unsigned int minConn = 3; unsigned int incrConn = 2; ConnectionPool *connPool = env-createConnectionPool( poolUserName, poolPassword, connectString, minConn, maxConn, incrConn); 你當(dāng)然也可以動態(tài)的配置這些屬性。這允許你應(yīng)用能夠隨時讀取當(dāng)前加載和適當(dāng)?shù)恼{(diào)整這些屬 性(打開連接的數(shù)量和忙碌連接的數(shù)量)。另外,你可以使用setTimeOut()方法,當(dāng)空閑時間大 于指定時間時使連接終止。OCCI會周期性的終止空閑連接來保持打開連接數(shù)為最合適的值。一 個環(huán)境有幾個連接池沒有限制,在一個OCCI環(huán)境中可以有多個連接,這些連接可以指向一個或 多個數(shù)據(jù)庫,這將有助于開發(fā)需要負(fù)載平衡的應(yīng)用。 3.2.1.2、代理連接、代理連接(Proxy Connections) If you authorize the connection pool user to act as a proxy for other connections, then no password is required to log in database users who use one of the connections in the connection pool. 如果你授權(quán)一個連接池的用戶作為另外連接的代理,這時登錄連接池中的連接的用戶無需密碼 驗(yàn)證。 A proxy connection can be created by using either of the following methods: 創(chuàng)建一個代理連接可以用下面方法中的任意一種: ConnectionPool-createProxyConnection( const string or ConnectionPool-createProxyConnection( const string The following parameters are used in the previous method example: 下面是前面事例方法中用到的參數(shù)信息: roles:The roles array specifies a list of roles to be activated after the proxy connection is activated for the client 角色數(shù)組決定了代理連接生效后客戶端充當(dāng)?shù)慕巧斜怼?Connection:ProxyType proxyType = Connection:PROXY_DEFAULT: The enumeration Connection:ProxyType lists constants representing the various ways of achieving proxy authentication. PROXY_DEFAULT is used to indicate that name represents a database username and is the only proxy authentication mode currently supported. 枚舉類型 Connection:ProxyType 列舉出了完成代理驗(yàn)證的所有方式。 PROXY_DEFAULT 用來表明 name 代表一個數(shù)據(jù)庫用戶和當(dāng)前僅僅支持的代理驗(yàn)證模式。 3.2.2、無狀態(tài)連接池、無狀態(tài)連接池(Stateless Connection Pooling) Stateless Connection Pooling is specifically designed for use in applications that require short connection times and dont need to deal with state considerations. The primary benefit of Stateless Connection Pooling is increased performance, since the time consuming connection and authentication protocols are eliminated. Stateless Connection Pools create and maintain a group of stateless, authenticated connection to the database that can be used by multiple threads. Once a thread finishes using its connection, it should release the connection back to the pool. If no connections are available, new ones are generated. Thus, the number of connections in the pool can increase dynamically. 無狀態(tài)連接池設(shè)計目的是為那些短時連接、步需要關(guān)系狀態(tài)的應(yīng)用程序服務(wù)的。無狀態(tài)連接池 的第一個好處是可以增加效率,因?yàn)檫B接時間消耗和驗(yàn)證協(xié)議是可以忽略不計的。無狀態(tài)連接 池創(chuàng)建一組可以被多線程使用的無狀態(tài)的、已經(jīng)驗(yàn)證的數(shù)據(jù)庫連接。一旦一個線程完成了它所 使用的連接,必須釋放該連接到連接池。如果沒有連接可用,一個新的連接將被創(chuàng)建。因此連 接數(shù)在連接池中是動態(tài)增加的。 Some of the connections in the pool may be tagged with specific properties. The user may request a default connection, set certain attributes, such as Globalization Support settings, then tag it and return it to the pool. When a connection with same attributes is needed, a request for a connection with t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論