OceanBase學習之路10|C 相關 API 介紹
本文主要介紹常用的 C API 函式和示例。
C API 函式概覽
當前版本 OceanBase Connector/C 所有可用的 C API 函式如下表所示。
有關各介面詳細資訊,請參見官網檔案 《OceanBase Connector/C》 下的 章節。
名稱 | 描述 |
---|---|
my_init() | 初始化 OceanBase 庫的全域性變數。 |
mysql_affected_rows() | 返回上一次由
UPDATE 、
DELETE 或
INSERT 語句進行更改、刪除或插入的行數。 |
mysql_autocommit() | 設定自動提交模式。 |
mysql_change_user() | 在開啟的連線上更改使用者和資料庫。 |
mysql_character_set_name() | 返回當前連線的預設字符集名稱。 |
mysql_client_find_plugin() | 返回指向外掛的指標。 |
mysql_client_register_plugin() | 註冊一個外掛。 |
mysql_close() | 關閉與伺服器的連線。 |
mysql_commit() | 提交事務。 |
mysql_connect() | 連線伺服器。此功能已棄用。 |
mysql_create_db() | 建立資料庫。此功能已棄用。 |
mysql_data_seek() | 在結果集中查詢任意行號。 |
mysql_debug() | 使用給定的字串執行
DBUG_PUSH 。 |
mysql_drop_db() | 刪除資料庫。此功能已棄用。 |
mysql_dump_debug_info() | 引發伺服器將除錯資訊寫入錯誤日誌。 |
mysql_eof() | 判斷結果集的最後一行是否已經被讀取。此功能已棄用。 |
mysql_errno() | 返回最近呼叫的 API 函式的錯誤碼。 |
mysql_error() | 返回最近呼叫的 API 函式的錯誤資訊。 |
mysql_escape_string() | 跳脫字元串中的特殊字元,使其可以在 SQL 語句中使用。 |
mysql_fetch_field() | 返回下一個表欄位的型別。 |
mysql_fetch_field_direct() | 返回指定欄位編號的欄位型別。 |
mysql_fetch_fields() | 返回包含所有欄位結構的陣列。 |
mysql_fetch_lengths() | 返回當前行中所有列的長度。 |
mysql_fetch_row() | 獲取結果集的下一行。 |
mysql_field_count() | 返回最近查詢結果的列數。 |
mysql_field_seek() | 查詢結果集行中的列。 |
mysql_field_tell() | 最後一次呼叫
mysql_fetch_field() 的欄位位置。 |
mysql_free_result() | 釋放結果集記憶體。 |
mysql_get_character_set_info() | 返回關於預設字符集的資訊。 |
mysql_get_client_info() | 返回 OceanBase 客戶端版本資訊(字串)。 |
mysql_get_client_version() | 返回 OceanBase 客戶端版本資訊(整數型)。 |
mysql_get_host_info() | 返回包括伺服器主機名的相關連線資訊。 |
mysql_get_proto_info() | 返回連線所使用的協議版本。 |
mysql_get_server_info() | 返回伺服器版本號(字串)。 |
mysql_get_server_version() | 返回伺服器版本號(整數型)。 |
mysql_get_ssl_cipher() | 返回當前的 SSL 密碼。 |
mysql_hex_string() | 以十六進位制格式編碼字串。 |
mysql_info() | 返回最近執行語句的有關資訊。 |
mysql_init() | 獲取或初始化一個連線結構。 |
mysql_insert_id() | 返回上一條語句為
AUTO_INCREMENT 列生成的 ID 值。 |
mysql_kill() | 殺死一個執行緒。此功能已棄用。 |
mysql_library_end() | 結束使用 C API 庫。 |
mysql_library_init() | 初始化 C API 庫。 |
mysql_list_dbs() | 返回匹配正規表示式的資料庫名稱。 |
mysql_list_fields() | 返回匹配正規表示式的欄位名稱。 |
mysql_list_processes() | 返回當前伺服器的執行緒列表。 |
mysql_list_tables() | 返回匹配正規表示式的表名。 |
mysql_load_plugin() | 載入外掛。 |
mysql_load_plugin_v() | 載入外掛。 |
mysql_more_results() | 檢查是否存在更多的結果。 |
mysql_next_result() | 在多結果執行中返回或啟動下一個結果。 |
mysql_num_fields() | 返回結果集中的列數。 |
mysql_num_rows() | 返回結果集中的行數。 |
mysql_options() | 在連線前設定選項。 |
mysql_options4() | 在連線前設定選項。 |
mysql_ping() | Ping 伺服器。 |
mysql_plugin_options() | 設定外掛選項。 |
mysql_query() | 執行 SQL 語句。 |
mysql_real_connect() | 連線到伺服器。 |
mysql_real_escape_string() | 對語句的字串中的特殊字元進行編碼。 |
mysql_real_query() | 執行語句。 |
mysql_refresh() | 重新整理或重置表和快取。 |
mysql_reload() | 重新載入授權表。此功能已棄用。 |
mysql_rollback() | 回滾事務。 |
mysql_row_seek() | 在查詢結果集中查詢任意行。 |
mysql_row_tell() | 返回結果集行遊標的當前位置。 |
mysql_select_db() | 選擇資料庫。 |
mysql_server_end() | 結束使用 C API 庫。 |
mysql_server_init() | 初始化 C API 庫。 |
mysql_set_character_set() | 設定當前連線預設字符集。 |
mysql_set_local_infile_default() | 將
LOAD DATA LOCAL 控制程式碼回撥到預設值。 |
mysql_set_local_infile_handler() | 安裝指定應用程式的
LOAD DATA LOCAL 控制程式碼回撥。 |
mysql_set_server_option() | 設定當前連線的選項。 |
mysql_shutdown() | 關閉伺服器。 |
mysql_sqlstate() | 返回最近呼叫函式的
SQLSTATE 值。 |
mysql_ssl_set() | 準備與伺服器建立 SSL 連線。 |
mysql_stat() | 返回伺服器狀態。 |
mysql_stmt_affected_rows() | 返回使用上次準備的
UPDATE 、
DELETE 或
INSERT 語句進行更改、刪除或插入的行數。 |
mysql_stmt_attr_get() | 獲取 Prepared Statement 的屬性值。 |
mysql_stmt_attr_set() | 設定 Prepared Statement 屬性值。 |
mysql_stmt_bind_param() | 將應用程式資料緩衝器與 Prepared Statement 中的引數標記相關聯。 |
mysql_stmt_bind_result() | 將應用程式資料緩衝器與結果集中的列相關聯。 |
mysql_stmt_close() | 釋放 Prepared Statement 所使用的記憶體。 |
mysql_stmt_data_seek() | 在 Prepared Statement 的結果集中查詢任意行號。 |
mysql_stmt_errno() | 最近呼叫的 Prepared Statement API 函式的錯誤號。 |
mysql_stmt_error() | 最近呼叫的 Prepared Statement API 函式的錯誤資訊。 |
mysql_stmt_execute() | 執行 Prepared Statement 。 |
mysql_stmt_fetch() | 獲取結果集的下一行並返回所有繫結列的資料。 |
mysql_stmt_fetch_column() | 獲取當前結果集行的一列。 |
mysql_stmt_field_count() | 最近 Prepared Statement 執行結果的列數。 |
mysql_stmt_free_result() | 釋放分配給語句控制程式碼的資源。 |
mysql_stmt_init() | 為
STMT 結構分配和初始化記憶體。 |
mysql_stmt_insert_id() | 由先前的 Prepared Statement 所生成的
AUTO_INCREMENT 列的 ID。 |
mysql_stmt_next_result() | 在多結果 Prepared Statement 執行中返回或啟動下一個結果。 |
mysql_stmt_num_rows() | 緩衝語句結果集中的行數。 |
mysql_stmt_param_count() | 返回 Prepared Statement 中的引數數量。 |
mysql_stmt_param_metadata() | 將引數後設資料作為結果集返回。 |
mysql_stmt_prepare() | 準備執行語句。 |
mysql_stmt_reset() | 在伺服器端重置語句緩衝器。 |
mysql_stmt_result_metadata() | 將 Prepared Statement 的後設資料作為結果集返回。 |
mysql_stmt_row_seek() | 在 Prepared Statement 結果集中尋找任意行。 |
mysql_stmt_row_tell() | 返回 Prepared Statement 結果集行遊標的當前位置。 |
mysql_stmt_send_long_data() | 將長資料分塊傳送到伺服器。 |
mysql_stmt_sqlstate() | 返回最近呼叫的 Prepared Statement API 函式的
SQLSTATE 值。 |
mysql_stmt_store_result() | 檢索並儲存整個結果集。 |
mysql_store_result() | 檢索並儲存整個結果集。 |
mysql_thread_end() | 結束使用執行緒控制程式碼。 |
mysql_thread_id() | 返回當前執行緒 ID。 |
mysql_thread_init() | 初始化執行緒控制程式碼。 |
mysql_thread_safe() | 指示客戶端庫的編譯是否為執行緒安全的。 |
mysql_use_result() | 開始逐行檢索結果集。 |
mysql_warning_count() | 返回上一條語句的告警計數。 |
示例
使用基礎介面連線資料庫,並建立表和更改資料。
mysql_library_init(0, NULL, NULL); MYSQL *mysql = mysql_init(NULL); /* 使用 CLIENT_MULTI_STATEMENTS 選項連線伺服器 */ if (mysql_real_connect (mysql, host_name, user_name, password, db_name, port_num, socket_name, CLIENT_MULTI_STATEMENTS) == NULL) { printf("mysql_real_connect() failed\n"); mysql_close(mysql); mysql_library_end(); exit(1); } /*執行多條語句 */ status = mysql_query(mysql, "DROP TABLE IF EXISTS tbl1;\ CREATE TABLE tbl1(id INT);\ INSERT INTO tbl1 VALUES(110);\ UPDATE tbl1 SET id=120 WHERE id=110;\ SELECT * FROM tbl1;\ DROP TABLE tbl1"); if (status) { printf("Could not execute statement(s)"); mysql_close(mysql); mysql_library_end(); exit(0); } /* 處理每個語句的結果 */ do { /* 當前語句是否返回資料? */ result = mysql_store_result(mysql); if (result) { /* 是的; 則處理行並釋放結果集 */ process_result_set(mysql, result); mysql_free_result(result); } else /* 沒有結果集或報錯 */ { if (mysql_field_count(mysql) == 0) { printf("%lld rows affected\n", mysql_affected_rows(mysql)); } else /* 發生報錯 */ { printf("Could not retrieve result set\n"); break; } } /* 判斷是否有更多結果? -1 表示否,大於 0 表示報錯,等於 0 表示是(即繼續迴圈)*/ if ((status = mysql_next_result(mysql)) > 0) printf("Could not execute statement\n"); } while (status == 0); mysql_close(mysql); mysql_library_end();
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026075/viewspace-2932343/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OceanBase學習之路5|C 應用程式連線 OceanBase 資料庫資料庫
- Python學習之路2-列表介紹Python
- Nginx 相關介紹Nginx
- 【手摸手玩轉 OceanBase 172】清理備份相關引數介紹
- 【手摸手玩轉 OceanBase 173】清理備份相關檢視介紹
- 【手摸手玩轉 OceanBase 160】日誌歸檔相關檢視介紹
- 【手摸手玩轉 OceanBase 167】資料備份相關檢視介紹
- FastAPI 學習之路(二十)介面文件配置相關ASTAPI
- Drupal建站的相關介紹
- camunda相關資料介紹
- RTSP 流相關工具介紹
- C#學習 [型別系統] 基本型別介紹(10)C#型別
- MyBatis框架的使用解析!資料庫相關API的基本介紹MyBatis框架資料庫API
- OceanBase學習之路6|透過 Obclient 連線 OceanBase 租戶client
- OceanBase學習之路3 |SpringJDBC 連線示例SpringJDBC
- OceanBase學習之路4|SpringBoot 連線示例Spring Boot
- OceanBase學習之路9|連線方式概述
- OceanBase學習之路15|體驗 Operational OLAP
- Android多渠道打包相關介紹Android
- Go gRPC 系列一:相關介紹GoRPC
- 設計模式的相關介紹設計模式
- OceanBase學習之路8|Java 應用程式連線 OceanBase 資料庫Java資料庫
- Python之logging模組相關介紹Python
- Python之set集合的相關介紹Python
- python之pymsql模組相關介紹PythonSQL
- Python之函式的相關介紹Python函式
- spark相關介紹-提取hive表(一)SparkHive
- 表示學習介紹
- OceanBase學習之路38|如何合併資源池?
- OceanBase學習之路13|體驗多租戶特性
- OceanBase學習之路47|什麼是資源管理?
- OceanBase學習之路54|如何配置多租戶管理?
- OceanBase學習之路7|透過 MySQL 客戶端連線 OceanBase 租戶MySql客戶端
- OceanBase學習之路16|體驗 OceanBase 資料庫熱點行更新能力資料庫
- ArrayList相關方法介紹及原始碼分析原始碼
- weex-toolkit工具的相關命令介紹
- 隱私計算相關技術介紹
- arm相關學習