<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      LibOciLib使用說明(2017-1-26更新)

      LibOciLib使用說明

      整理者:赤勇玄心行天道

      QQ:280604597

      Email:280604597@qq.com

      大家有什么不明白的地方,或者想要詳細了解的地方可以聯系我,我會認真回復的!

      你可以隨意轉載,無需注明出處!

      寫文檔實屬不易,我希望大家能捐助我,繼續支持我的工作,我會繼續努力幫助大家,金額隨意,1塊也行,感謝!

      支付寶:280604597@qq.com

      QQ紅包

       

      OCILIB的QQ群:553666676

       

      1、  復制解決方案根目錄下的“LibOciLib”文件夾到調用程序的解決方案根目錄下。

      2、  調用程序需添加代碼:

      #include "..\LibOciLib\ocilib.h"

      #if (defined _WIN64) && (defined _DEBUG)

      #pragma comment(lib, "..\\LibOciLib\\LibOciLib_x64_Debug_MDd_LIB.lib")

      #pragma comment(lib, "..\\LibOciLib\\oci_x64.lib")

      #elif (defined _WIN64) && (defined NDEBUG)

      #pragma comment(lib, "..\\LibOciLib\\LibOciLib_x64_Release_MD_LIB.lib")

      #pragma comment(lib, "..\\LibOciLib\\oci_x64.lib")

      #elif (defined _WIN32) && (defined _DEBUG)

      #pragma comment(lib, "..\\LibOciLib\\LibOciLib_x86_Debug_MDd_LIB.lib")

      #pragma comment(lib, "..\\LibOciLib\\oci_x86.lib")

      #elif (defined _WIN32) && (defined NDEBUG)

      #pragma comment(lib, "..\\LibOciLib\\LibOciLib_x86_Release_MD_LIB.lib")

      #pragma comment(lib, "..\\LibOciLib\\oci_x86.lib")

      #endif

      3、  編譯調用程序的項目。


       


      1   簡介

      官方網站:http://vrogier.github.io/ocilib/

      2   字段數據類型對應規則

      DATABASE TYPE

      C API TYPE

      C API SUBTYPE

      C++ API

      C++ API SUBTYPE

      PL/SQL BOOLEAN

      boolean

       

      bool

       

      NUMBER

      short

       

      short

       

      NUMBER

      unsigned short

       

      unsigned short

       

      NUMBER

      int

       

      int

       

      NUMBER

      unsigned int

       

      unsigned int

       

      NUMBER

      big_int (long long)

       

      big_int (long long

       

      NUMBER

      big_uint (unsigned long long)

       

      big_uint (unsigned long long)

       

      NUMBER

      float

       

      float

       

      NUMBER

      double

       

      double

       

      NUMBER

      OCI_Number *

       

      ocilib::number

       

      FLOAT

      double

       

      double

       

      BINARY FLOAT

      float

       

      float

       

      BINARY DOUBLE

      double

       

      float

       

      CHAR

      otext *

       

      ocilib::ostring

       

      VARCHAR

      otext *

       

      ocilib::ostring

       

      VARCHAR2

      otext *

       

      ocilib::ostring

       

      NVARCHAR

      otext *

       

      ocilib::ostring

       

      NVARCHAR2

      otext *

       

      ocilib::ostring

       

      ROWID

      otext *

       

      ocilib::ostring

       

      UROWID

      otext *

       

      ocilib::ostring

       

      VARRAW

      void *

       

      ocilib::Raw

       

      RAW

      void *

       

      ocilib::Raw

       

      LONG

      OCI_Long *

      OCI_CLONG

      ocilib::Clong

       

      LONG VARCHAR

      OCI_Long *

      OCI_CLONG

      ocilib::Clong

       

      LONG RAW

      OCI_Long *

      OCI_BLONG

      ocilib::Blong

       

      DATE

      OCI_Date *

       

      ocilib::Date

       

      TIMESTAMP

      OCI_Timestamp *

      OCI_TIMESTAMP

      ocilib::Timestamp

      NoTimeZone

      TIMESTAMP WITH TIME ZONE

      OCI_Timestamp *

      OCI_TIMESTAMP_TZ

      ocilib::Timestamp

      WithTimeZone

      TIMESTAMP WITH LOCAL TIME ZONE

      OCI_Timestamp *

      OCI_TIMESTAMP_LTZ

      ocilib::Timestamp

      WithLocalTimeZone

      INTERVAL YEAR TO MONTH

      OCI_Interval *

      OCI_INTERVAL_YM

      ocilib::Interval

      YearMonth

      INTERVAL DAY TO SECOND

      OCI_Interval *

      OCI_INTERVAL_DS

      ocilib::Interval

      DaySecond

      Character LOB

      OCI_Lob *

      OCI_CLOB

      ocilib::Clob

      LobCharacter

      National Character LOB

      OCI_Lob *

      OCI__NCLOB

      ocilib::NClob

      LobNationalCharacter

      Binary LOB

      OCI_Lob *

      OCI_BLOB

      ocilib::Blob

      LobBinary

      Binary FILE

      OCI_File *

      OCI_BFILE

      ocilib::File

       

      VARRAY

      OCI_Coll *

      OCI_COLL_VARRAY

      ocilib::Collection

      Varray

      NESTED TABLE

      OCI_Coll *

      OCI_COLL_NESTED_TABLE

      ocilib::Collection

      NestedTable

      PL/SQL INDEXED TABLE

      OCI_Coll *

      OCI_COLL_INDEXED_TABLE

      ocilib::Collection

      IndexedTable

      NAMED DATATYPE (TYPE, OBJECT)

      OCI_Object *

       

      ocilib::Object

       

      PL/SQL RECORD

      OCI_Object *

       

      ocilib::Object

       

      REF

      OCI_Ref *

       

      ocilib::Reference

       

       


       


      3   常用函數

      OCI_Initialize() 初始化OCILIB庫

      OCI_Cleanup() 釋放OCILIB庫

      OCI_ConnectionCreate() 創建Oracle數據庫連接,并返回Oracle數據庫連接句柄

      OCI_ConnectionFree() 斷開Oracle數據庫連接,并釋放Oracle數據庫連接句柄

      OCI_GetServerMajorVersion() 獲取Oracle數據庫服務器版本號

      OCI_GetServerMinorVersion() 獲取Oracle數據庫服務器版本號

      OCI_GetServerRevisionVersion() 獲取Oracle數據庫服務器版本號

      OCI_GetVersionConnection() 獲取Oracle數據庫服務器版本號

      OCI_StatementCreate() 創建Statement句柄,Statement句柄用于執行SQL語句

      OCI_StatementFree() 釋放Statement句柄

      OCI_Prepare() 準備SQL語句

      OCI_BindString() 綁定SQL語句變量

      OCI_Execute() 執行SQL語句

      OCI_ExecuteStmt() 準備并執行SQL語句

      OCI_GetResultset() 獲取結果集句柄

      OCI_ReleaseResultsets() 釋放結果集句柄

      OCI_FetchNext() 獲取結果集句柄的第一條或下一條數據

      OCI_GetString() 獲取結果集句柄的當條數據的某個字段的字符串內容

      OCI_GetInt() 獲取結果集句柄的當條數據的某個字段的整數內容

       

       

      3.1 函數模板(未完成)

      函數名稱

      xxx

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      函數主要功能說明。

      函數聲明

      類型 函數名 (

      類型 參數1,

      類型 參數2,

      ……

      );

      函數參數

      參數1,[輸入|輸出|輸入&輸出]:

      參數說明。

      參數2,[輸入|輸出|輸入&輸出]:

      參數說明。

      ……

      返回值

      返回值1:返回值說明。

      返回值2:返回值說明。

      ……

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

      ……

      ……

       

       

      3.2 初始化

      3.2.1 OCI_Initialize

      函數名稱

      OCI_Initialize

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      初始化OCILIB庫,必須初始化后才能調用OCILIB庫函數。

      本函數只需調用一次,再次調用在函數內部自動忽略。

      函數聲明

      boolean OCI_Initialize (

      POCI_ERROR err_handler,

      const mtext * lib_path,

      unsigned int mode

      );

      函數參數

      err_handler,[輸入]:

      存放當執行數據庫操作出錯時的出錯回調函數的內存指針,函數聲明應為void err_handler (OCI_Error * err),err參數為錯誤碼句柄。

      如果本參數為NULL,表示不使用回調函數。

      lib_path,[輸入]:

      存放Oracle數據庫的Oci動態庫的上級路徑字符串的內存指針,例如:C:\instantclient_11_2。

      如果本參數為NULL,表示從ORACLE_HOME環境變量獲取Oracle數據庫的動態庫的路徑。

      如果要使本參數生效,需要在編譯OCILIB庫時指定OCI_IMPORT_RUNTIME宏,否則本參數將自動忽略為NULL。

      mode,[輸入]:

      存放模式標記,可以為(用'|'選一至多個):

      OCI_ENV_DEFAULT宏(0x0000):

      默認模式,本標記強制設置。

      OCI_ENV_THREADED宏(0x0001):

      如果設置本標記,表示啟用多線程支持使用本庫。

      如果不設置本標記,表示單線程使用本庫,不能多線程使用本庫,如果多線程使用會出現意外。

      OCI_ENV_CONTEXT宏(0x0002):

      如果設置本標記,表示啟用線程上下文錯誤處理,其實就是用線程上下文保存每一次數據庫操作的錯誤信息,以便可以調用OCI_GetLastError()函數來查看上次數據庫操作的錯誤信息。

      如果不設置本標記,表示不保存數據庫操作的錯誤信息,調用OCI_GetLastError()函數將無法查看到錯誤信息。

      是否設置本標記不影響err_handler參數指定的出錯回調函數。

      OCI_ENV_EVENTS(0x0004):

      enables events for subscription, HA Events, AQ notifications。

      返回值

      非0:成功。

      0:失敗,加載Oracle數據庫的動態庫或OCILIB動態庫失敗。

      錯誤碼

      線程安全

      原子操作

      其他說明

      本函數會加載Oracle數據庫的動態庫到調用進程。

      如果程序不會再調用OCILIB庫,可以調用OCI_Cleanup()函數釋放OCILIB庫。

       

       

      3.2.2 OCI_Cleanup

      函數名稱

      OCI_Cleanup

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      釋放OCILIB庫,釋放后OCILIB庫函數將不能再調用。

      釋放后,如果需要再次調用OCILIB庫,再次初始化OCILIB庫即可。

      只需在初始化OCILIB庫后,不再調用OCILIB庫時,調用本函數,未初始化OCILIB庫就調用本函數無意義。

      函數聲明

      boolean OCI_Cleanup (

      void

      );

      函數參數

      返回值

      非0:成功。

      0:失敗。

      錯誤碼

      線程安全

      原子操作

      其他說明

      本函數會從調用進程卸載Oracle數據庫的動態庫。

       

       

      3.3 錯誤處理

      3.3.1 OCI_GetLastError(未完成)

      函數名稱

      OCI_GetLastError

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取最近一次調用OCILIB庫的函數的錯誤或者警告。

      函數聲明

      OCI_Error * OCI_GetLastError (

      void

      );

      函數參數

      返回值

      非NULL:錯誤句柄,表示最近一次調用OCILIB庫的函數出現了錯誤或者警告。

      NULL:沒有錯誤或者警告,表示最近一次調用OCILIB庫的函數成功完成。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

       

       

       

      3.3.2 OCI_ErrorGetString

      函數名稱

      OCI_ErrorGetString

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      根據錯誤句柄,獲取錯誤或警告的提示信息字符串。

      函數聲明

      const otext * OCI_ErrorGetString (

      OCI_Error * err

      );

      函數參數

      err,[輸入]:

      存放錯誤句柄,不能為NULL。

      返回值

      錯誤或警告的提示信息字符串的內存指針。

      錯誤碼

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

      提示信息字符串示例:ORA-12154: TNS: 無法解析指定的連接標識符

       

       

      3.3.3 OCI_ErrorGetType(未完成)

      函數名稱

      OCI_ErrorGetType

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      根據錯誤句柄,獲取錯誤類型,包括:Oracle錯誤、OCILIB錯誤、Warning警告。

      函數聲明

      unsigned int OCI_ErrorGetType(

      OCI_Error * err

      )

      函數參數

      err,[輸入]:

      存放錯誤句柄,不能為NULL。

      返回值

      OCI_ERR_ORACLE:Oracle錯誤。

      OCI_ERR_OCILIB:OCILIB錯誤。

      OCI_ERR_WARNING:Warning警告。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

       

       

       

      3.4 連接數據庫

      3.4.1 OCI_ConnectionCreate(未完成)

      函數名稱

      OCI_ConnectionCreate

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      創建一個Oracle數據庫的連接,并返回Oracle數據庫連接句柄。

      函數聲明

      OCI_Connection * OCI_ConnectionCreate (

      const mtext * db,

      const mtext * user,

      const mtext * pwd,

      unsigned int mode

      );

      函數參數

      db,[輸入]:

      存放連接Oracle數據庫的連接描述符字符串的內存指針,也可以直接存放連接描述符的配置字符串的內存指針。

      連接描述符的配置在oracle的安裝路徑下的network/admin/tnsnames.ora中。

      連接描述符的配置字符串就是tnsnames.ora文件中連接描述符等于符號后面所填寫的內容。

      user,[輸入]:

      存放連接Oracle數據庫的用戶名字符串的內存指針。

      pwd,[輸入]:

      存放連接Oracle數據庫的用戶名對應的密碼字符串的內存指針。

      mode,[輸入]:

      存放連接Oracle數據庫的會話模式,可以為(選一至一個):

      OCI_SESSION_DEFAULT宏(0x0000)

      以normal普通身份登陸Oracle數據庫。

      OCI_SESSION_SYSDBA宏(0x0002)

      以SYSDBA系統管理員身份登陸Oracle數據庫。

      OCI_SESSION_SYSOPER宏(0x0004)

      以SYSOPER系統操作員身份登陸Oracle數據庫。

      OCI_SESSION_XA宏(0x0001)

      Oracle XA support

      OCILIB supports Oracle XA connectivity. In order to get a connection using the XA interface :

      Pass to the parameter 'db' the value of the 'DB' parameter of the given XA connection string pased to the Transaction Processing Monitor (TPM)

      Pass NULL to the 'user' and 'pwd' parameters

      Pass the value OCI_SESSION_XA to parameter 'mode'

       

      Oracle XA Connection String

      The XA connection string used in a transaction monitor to connect to Oracle must be compatible with OCILIB :

      the XA parameter 'Objects' MUST be set to 'true'

      If OCI_ENV_THREADED is passed to OCI_Initialize(), the XA parameter 'Threads' must be set to 'true', otherwise to 'false'

      If OCI_ENV_EVENTS is passed to OCI_Initialize(), the XA parameter 'Events' must be set to 'true', otherwise to 'false'

      As Oracle does not support Unicode UTF16 characterset through the XA interface, Only OCI_CHARSET_ANSI builds of OCILIB can be used

      You still can use UTF8 if the NLS_LANG environment variable is set with a valid UTF8 NLS value

      DO NOT USE OCI_CHARSET_MIXED or OCI_CHARSET_WIDE OCILIB builds with XA connections

      返回值

      非NULL:連接成功,Oracle數據庫連接句柄。

      NULL:連接失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

      如果要斷開連接,可以調用OCI_ConnectionFree()函數。

       

       

      3.4.2 OCI_ConnectionFree(未完成)

      函數名稱

      OCI_ConnectionFree

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      斷開一個Oracle數據庫的連接。

      函數聲明

      boolean OCI_ConnectionFree (

      OCI_Connection * con

      )

      函數參數

      con,[輸入]:

      存放調用OCI_ConnectionCreate()函數返回的Oracle數據庫連接句柄,不能為NULL。

      本參數不能為錯誤的Oracle數據庫連接句柄,否則會內存讀寫錯誤。

      返回值

      非0:斷開成功。

      0:斷開失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      ORA-0:指定的Oracle數據庫連接句柄為NULL。

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

      Oracle數據庫連接句柄在斷開后就不能再使用了,再用就會報錯誤的Oracle數據庫連接句柄。

       

       

      3.5 執行Statement

      3.5.1 OCI_StatementCreate(未完成)

      函數名稱

      OCI_StatementCreate

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      根據Oracle數據庫連接句柄,創建Statement對象句柄。

      函數聲明

      OCI_Statement * OCI_StatementCreate (

      OCI_Connection * con

      );

      函數參數

      con,[輸入]:

      存放Oracle數據庫連接句柄。

      返回值

      非NULL:成功,Statement對象句柄。

      NULL:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

      創建完Statement對象句柄,就可以開始準備、解析并執行SQL語句或PL/SQL代碼塊了。

      執行一個SQL語句或PL/SQL代碼塊需要經過三個步驟:準備、解析、執行。具體如下:

      準備就是將SQL語句或PL/SQL代碼塊存放到Statement對象句柄。

      解析就是讓Oracle數據庫服務器將準備好的SQL語句或PL/SQL代碼塊進行分析是否可以被執行。

      執行就是將已經解析通過后的SQL語句或PL/SQL代碼塊進行執行。

      一個Statement對象句柄在經過準備、解析、執行步驟之后,如果還需要再執行任何SQL語句或PL/SQL代碼塊,必須要重新進行準備、解析、執行步驟,不能只準備一次,然后重復執行,否則會出現意外錯誤。

       

      當Statement對象句柄不再使用時,應調用OCI_StatementFree()函數釋放Statement對象句柄。

       

       

      3.5.2 OCI_StatementFree(未完成)

      函數名稱

      OCI_StatementFree

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      釋放Statement對象句柄。

      函數聲明

      OCI_EXPORT boolean OCI_StatementFree (

      OCI_Statement * stmt

      );

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      返回值

      非0:成功。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.5.3 OCI_Prepare(未完成)

      函數名稱

      OCI_Prepare

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      向指定的Statement對象句柄里,準備一個SQL語句或PL/SQL代碼塊,該SQL語句或PL/SQL代碼塊不會被解析和執行。

      函數聲明

      boolean OCI_Prepare (

      OCI_Statement * stmt,

      const otext * sql

      )

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      sql,[輸入]:

      存放SQL語句或PL/SQL代碼塊字符串的內存指針,不能為NULL。

      如果是SQL語句,不能在末尾添加';'分號,例如:select * from dual。

      如果是PL/SQL代碼塊,必須要在末尾添加';'分號,例如:begin dbms_output.new_line(); end;。

      返回值

      非0:成功,或有警告,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

      一般在調用本函數后,會再對SQL語句或PL/SQL代碼塊中的變量進行綁定,然后再調用OCI_Execute()函數解析并執行。如果不需要綁定變量的,一般會調用OCI_ExecuteStmt()函數來一次性完成準備、解析和執行。

      如果SQL語句或PL/SQL代碼塊中有變量需要綁定,綁定變量的格式都是冒號后面加變量名,例如:insert into table values (:var1, :var2)。

       

       

      3.5.4 OCI_Execute(未完成)

      函數名稱

      OCI_Execute

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      根據指定的Statement對象句柄,解析并執行一個已經準備好的并綁定了變量的SQL語句或PL/SQL代碼塊。

      函數聲明

      boolean OCI_Execute (

      OCI_Statement * stmt

      )

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      返回值

      非0:成功,或有警告,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

       

       

       

      3.5.5 OCI_ExecuteStmt(未完成)

      函數名稱

      OCI_ExecuteStmt

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      向指定的Statement對象句柄里,準備、解析并執行一個SQL語句或PL/SQL代碼塊。

      函數聲明

      OCI_EXPORT boolean OCI_ExecuteStmt (

      OCI_Statement * stmt,

      const otext * sql

      );

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      sql,[輸入]:

      存放SQL語句或PL/SQL代碼塊字符串的內存指針,不能為NULL。

      如果是SQL語句,不能在末尾添加';'分號,例如:select * from dual。

      如果是PL/SQL代碼塊,必須要在末尾添加';'分號,例如:begin dbms_output.new_line(); end;。

      返回值

      非0:成功,或有警告,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

      如果成功執行了Select查詢語句,就可以調用OCI_GetResultset()函數來獲取結果集。

       

       

      3.5.6 OCI_Parse(未完成)

      函數名稱

      OCI_Parse

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      向指定的Statement對象句柄里,準備并解析一個SQL語句或PL/SQL代碼塊,該SQL語句或PL/SQL代碼塊不會被執行。

      函數聲明

      boolean OCI_Parse (

      OCI_Statement * stmt,

      const otext * sql

      )

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      sql,[輸入]:

      存放SQL語句或PL/SQL代碼塊字符串的內存指針,不能為NULL。

      如果是SQL語句,不能在末尾添加';'分號,例如:select * from dual。

      如果是PL/SQL代碼塊,必須要在末尾添加';'分號,例如:begin dbms_output.new_line(); end;。

      返回值

      非0:成功,或有警告,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

       

       

       

      3.6 控制Statement

      3.6.1 OCI_GetFetchSize(未完成)

      函數名稱

      OCI_GetFetchSize

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取指定的Statement對象句柄在每次抽取數據時從Oracle數據庫服務器預抽取多少行的數據。

      函數聲明

      unsigned int OCI_GetFetchSize (

      OCI_Statement * stmt

      )

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      返回值

      預抽取多少行的數據,默認值為OCI_FETCH_SIZE宏。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

      預抽取就是先從Oracle數據庫服務器一次性抽取多行數據存放到緩存中,然后再從該緩存中依次抽取數據出來,當緩存中的數據抽取完畢時,又會從Oracle數據庫服務器一次性抽取多行數據存放到緩存中,直到全部抽取完畢,這樣可以加快抽取速度,減少Oracle數據庫服務器的壓力。

       

       

      3.6.2 OCI_SetFetchSize(未完成)

      函數名稱

      OCI_SetFetchSize

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      修改指定的Statement對象句柄在每次抽取數據時從Oracle數據庫服務器預抽取多少行的數據。

      函數聲明

      boolean OCI_SetFetchSize (

      OCI_Statement * stmt,

      unsigned int size

      )

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      size,[輸入]:

      存放預抽取多少行的數據的值。

      返回值

      非0:成功,或有警告,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      是,需啟用多線程支持

      其他說明

      本函數必須要在調用OCI_GetResultset()函數之前調用,否則將無效。

      調大預抽取行數可以加快抽取速度,越打越快,一般為10000至50000能達到最快抽取速度。

       

       

      3.7 抽取結果集數據

      3.7.1 OCI_GetResultset(未完成)

      函數名稱

      OCI_GetResultset

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取根據Statement對象句柄執行Select查詢語句后的結果集句柄。

      函數聲明

      OCI_Resultset * OCI_GetResultset (

      OCI_Statement * stmt

      );

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      返回值

      非0:成功,結果集句柄。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

      當結果集句柄不再使用時,應調用OCI_ReleaseResultsets()函數釋放結果集句柄。

       

       

      3.7.2 OCI_ReleaseResultsets(未完成)

      函數名稱

      OCI_ReleaseResultsets

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      釋放結果集句柄。

      函數聲明

      boolean OCI_ReleaseResultsets (

      OCI_Statement * stmt

      );

      函數參數

      stmt,[輸入]:

      存放Statement對象句柄。

      返回值

      非0:成功。

      0:失敗,通過err_handler()出錯回調函數或調用OCI_GetLastError()函數查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.3 OCI_GetColumnCount(未完成)

      函數名稱

      OCI_GetColumnCount

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取結果集句柄的字段個數。

      函數聲明

      unsigned int OCI_GetColumnCount (

      OCI_Resultset * rs

      );

      函數參數

      rs,[輸入]:

      存放結果集句柄。

      返回值

      字段個數。

      錯誤碼

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.4 OCI_GetColumn(未完成)

      函數名稱

      OCI_GetColumn

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取結果集句柄的指定索引的字段句柄。

      函數聲明

      OCI_Column * OCI_GetColumn  (

      OCI_Resultset * rs,

      unsigned int index

      );

      函數參數

      rs,[輸入]:

      存放結果集句柄。

      index,[輸入]:

      存放字段索引的值,從1開始。

      返回值

      非NULL:成功,返回值就是字段句柄。

      NULL:失敗,字段索引超出范圍或發生錯誤,無法查看錯誤碼。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.5 OCI_ColumnGetName(未完成)

      函數名稱

      OCI_ColumnGetName

      頭文件

      #include <xxx.h>

      #include <xxx.h>

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取字段句柄的名稱字符串。

      函數聲明

      const otext * OCI_ColumnGetName (

      OCI_Column * col

      );

      函數參數

      col,[輸入]:

      存放字段句柄。

      返回值

      名稱字符串的內存指針。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.6 OCI_ColumnGetSQLType(未完成)

      函數名稱

      OCI_ColumnGetSQLType

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取字段句柄的類型字符串,只有類型,沒有精度。

      例如:VARCHAR2。

      函數聲明

      const otext * OCI_ColumnGetSQLType (

      OCI_Column * col

      )

      函數參數

      col,[輸入]:

      存放字段句柄。

      返回值

      類型字符串的內存指針。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.7 OCI_ColumnGetFullSQLType(未完成)

      函數名稱

      OCI_ColumnGetFullSQLType

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取字段句柄的完整類型字符串,包括類型和精度。

      注意:VARCHAR2類型的字段會寫成VARCHAR,但是不影響,因為Oracle中VARCHAR和VARCHAR2是同一種類型。

      例如:VARCHAR(30)。

      函數聲明

      unsigned int OCI_ColumnGetFullSQLType (

      OCI_Column * col,

      otext * buffer,

      unsigned int len

      );

      函數參數

      col,[輸入]:

      存放字段句柄。

      buffer,[輸入]:

      存放用于存放字段完整類型字符串的內存指針。

      len,[輸入]:

      存放用于存放字段完整類型字符串的內存大小。

      返回值

      向用于存放字段完整類型字符串的內存寫入了多少長度的字符,單位字節,不包括'\0'結束符。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.8 OCI_ColumnGetSize(未完成)

      函數名稱

      OCI_ColumnGetSize

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取字段句柄的大小,不同數據類型單位不一樣。

       

      VARCHAR2類型:單位為字符個數,和精度一致。

      NUMBER類型:單位為字節,通常都是22個字節。

      DATE類型:單位為字節,通常都是7個字節。

      TIMESTAMP類型:單位為字節,通常都是11個字節,精度為0是7個字節。

      TIMESTAMP WITH LOCAL TIME ZONE類型:單位為字節,通常都是11個字節,精度為0是7個字節。

      TIMESTAMP WITH TIME ZONE類型:單位為字節,通常都是13個字節。

      函數聲明

      unsigned int OCI_ColumnGetSize (

      OCI_Column * col

      );

      函數參數

      col,[輸入]:

      存放字段句柄。

      返回值

      返回值1:返回值說明。

      返回值2:返回值說明。

      ……

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

       

      3.7.9 OCI_ColumnGetNullable(未完成)

      函數名稱

      OCI_ColumnGetNullable

      頭文件

      #include "..\LibOciLib\ocilib.h"

      庫文件

      #pragma comment(lib, "xxx.lib")

      函數功能

      獲取字段句柄的值可否為NULL。

      函數聲明

      boolean OCI_ColumnGetNullable (

      OCI_Column * col

      );

      函數參數

      col,[輸入]:

      存放字段句柄。

      返回值

      非0:可以為NULL。

      0:不可以為NULL。

      錯誤碼

      EXXXX:錯誤碼說明。

      EXXXX:錯誤碼說明。

      ……

      線程安全

      是,需啟用多線程支持

      原子操作

      其他說明

       

       

      posted @ 2017-01-26 10:17  赤勇玄心行天道  閱讀(4644)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日日爽日日操| 久久a级片| 黑人大战中国av女叫惨了| 日韩不卡在线观看视频不卡| 88国产精品视频一区二区三区| 一区二区三区综合在线视频| 高潮潮喷奶水飞溅视频无码| 亚洲AV国产福利精品在现观看| AV无码不卡一区二区三区| 亚洲日本VA中文字幕在线| 一区二区三区四区五区自拍| 亚洲国产精品人人做人人爱| 免费人成年激情视频在线观看| 99国产午夜福利在线观看| 小13箩利洗澡无码视频网站 | 国产成人精品18| 九九热爱视频精品视频| 国产在线中文字幕精品| 亚洲色成人网站www永久| 久久亚洲精品成人av秋霞| 日本不卡的一区二区三区| 麻豆tv入口在线看| 18禁免费无码无遮挡网站| 人妻中文字幕亚洲精品| 国产自产在线视频一区| 亚洲国产欧美在线人成aaaa| 亚洲岛国成人免费av| 色综合中文综合网| 视频一区二区不中文字幕| 无码人妻一区二区三区四区AV| 亚洲精品漫画一二三区| AI做受???高潮AAAA视频| 麻豆最新国产AV原创精品| 女子spa高潮呻吟抽搐| 亚洲精品综合第一国产综合| 2019久久久高清日本道| 日本黄韩国色三级三级三| 国产女人喷潮视频免费| 大帝AV在线一区二区三区| 少妇人妻真实偷人精品| 亚欧美闷骚院|