OceanBase Connector/Cは、C/C++に基づくOceanBaseクライアント開発コンポーネントであり、C APIライブラリをサポートしています。
OceanBase Connector/Cにより、C/C++プログラムは比較的低レベルな方法でOceanBase分散データベースクラスタにアクセスし、データベース接続、データアクセス、エラー処理、Prepared Statement処理などの操作を実行できます。
OceanBase Connector/CはLibobClientとも呼ばれ、アプリケーションが独立したサーバープロセスとしてネットワーク経由でデータベースサーバーOBServerと通信するために使用されます。クライアントプログラムはコンパイル時にC APIヘッダーファイルをインポートし、同時にC APIライブラリファイルに接続することができます。
インターフェース情報
サポートされているC API関数は以下の表のとおりです:
以下の関数の詳細については、OceanBase Connector/CのC API関数ドキュメントを参照してください。
| 関数名 | 機能 |
|---|---|
| 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 | dbパラメータで指定されたデータベースを作成します。 |
| mysql_data_seek | 結果セット内の任意の行を見つけるために使用されます。 |
| mysql_debug | 指定された文字列を使用してDBUG PUSHを実行します。 |
| mysql_drop_db | 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_FIELD構造を配列形式で返すために使用されます。MYSQL_FIELD構造は結果セットの列にフィールド定義を提供します。 |
| 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 | OceanBaseサーバーのバージョンを示す文字列を返します。 |
| mysql_get_server_version | OceanBaseサーバーのバージョンを示す整数を返します。 |
| mysql_get_ssl_cipher | 指定されたサーバー接続の暗号化パスワード名を返します。 |
| mysql_hex_string | 有効なSQL文字列を作成するために使用されます。 |
| mysql_info | 最後に実行されたステートメントに関する情報を示す文字列を返します。 |
| mysql_init | mysql_real_connect()用のMYSQLオブジェクトを割り当てるか初期化するために使用されます。 |
| mysql_insert_id | 前のINSERTまたはUPDATEステートメントがAUTO_INCREMENT列に生成した値を返します。 |
| mysql_kill | pidで指定されたスレッドを終了するようサーバーに要求するために使用されます。 |
| mysql_library_end | C APIライブラリの使用を終了するために使用されます。 |
| mysql_library_init | C APIライブラリを初期化するために使用されます。 |
| mysql_list_dbs | wildパラメータで指定された単純正規表現とマッチするデータベース名からなる結果セットを返します。 |
| mysql_list_fields | wildパラメータで指定された単純正規表現とマッチするフィールド名を返します。 |
| mysql_list_processes | 現在のサーバーのスレッドを記述した結果セットを返します。 |
| mysql_list_tables | wildパラメータで指定された、単純正規表現とマッチするテーブル名からなる結果セットを返します。 H3+が追加されました |
| mysql_load_plugin | 名前とタイプで指定されたOceanBaseクライアントプラグインをロードします。 |
| mysql_load_plugin_v | OceanBaseクライアントプラグインをロードします。 |
| mysql_more_results | より多くの結果が存在するかどうかを確認するために使用されます。 |
| mysql_next_result | 複数のステートメントで構成される単一のステートメント文字列を実行する場合、またはストアドプロシージャ内でCALLステートメントを使用して複数の結果セットを返すシナリオで使用されます。 |
| mysql_num_fields | 結果セット内の列数を返すために使用されます。 |
| mysql_num_rows | 結果セット内の行数を返すために使用されます。 |
| mysql_options | 追加の接続オプションを設定し、接続の動作に影響を与えます。 |
| mysql_options4 | 追加の接続オプションを設定し、接続の動作に影響を与えます。 |
| mysql_ping | サーバーへの接続が正常かどうかを確認するために使用されます。 |
| mysql_plugin_options | オプションのタイプと値をプラグインに渡すために使用されます。 |
| mysql_query | NULL終了文字列stmt_strが指すSQLステートメントを実行するために使用されます。 |
| mysql_real_connect | ホスト上で実行されているOBServerノードとの接続を確立するために使用されます。 |
| mysql_real_escape_string | ステートメントの文字列内の特殊文字をエンコードし、SQLステートメントの有効な文字列を作成します。 |
| mysql_real_query | stmt_strが指すSQL文を実行します。 |
| mysql_refresh | テーブルとキャッシュをリフレッシュまたはリセットします。 |
| mysql_reload | サーバーに権限テーブルの再ロードを要求します。 |
| mysql_rollback | 現在のトランザクションをロールバックします。 |
| mysql_row_seek | クエリ結果セット内で任意の行を検索します。 |
| mysql_row_tell | 結果セットの行カーソルの現在の位置を返します。 |
| mysql_select_db | dbで指定されたデータベースを、mysqlで指定された接続上のデフォルト(現在)データベースにします。 |
| mysql_server_end | C APIライブラリの使用を終了します。 |
| mysql_server_init | OceanBaseクライアントライブラリを初期化します。 |
| mysql_set_character_set | 現在の接続のデフォルト文字セットを設定します。 |
| mysql_set_local_infile_default | LOAD DATA LOCALコールバック関数を、Cクライアントライブラリ内部で使用するデフォルト値に設定します。 |
| mysql_set_local_infile_handler | 指定されたアプリケーションのLOAD DATA LOCALハンドラーコールバックをインストールします。 |
| mysql_set_server_option | 接続オプションを有効または無効にします。 |
| mysql_shutdown | データベースサーバーを閉じます。 |
| mysql_sqlstate | 最後に実行されたSQLステートメントのSQLSTATEエラーコードを含む、ヌル文字で終了する文字列を返します。 |
| mysql_ssl_set | SSLを使用して暗号化接続を確立するために使用されます。 |
| mysql_stat | サーバー情報を含む文字列を返します(mysqladmin statusコマンドと類似)。これには、稼働時間(秒単位)、実行中のスレッド数、問題数、リロード数、および開いているテーブル数が含まれます。 |
| mysql_stmt_affected_rows | 最後に準備されたUPDATE、DELETE、またはINSERTステートメントを使用して変更、削除、または挿入された行数を返します。 |
| mysql_stmt_attr_get | ステートメントのプロパティ値を取得するために使用されます。 |
| 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 | ステートメント結果セット内の任意の行を見つけるために使用されます。 |
| mysql_stmt_errno | 最後に呼び出されたステートメントのAPI関数のエラーコードを返します。 |
| mysql_stmt_error | 最後に呼び出されたステートメントのAPI関数のエラーメッセージを返します。 |
| mysql_stmt_execute | ステートメントハンドルに関連付けられたプリペアドクエリを実行します。 |
| mysql_stmt_fetch | 結果セットの次の行を取得し、すべてのバインドされた列のデータを返します。 |
| mysql_stmt_fetch_column | 現在の結果セット行の1列を取得するために使用されます。 |
| mysql_stmt_field_count | 最新のPrepared Statementの列数を返します。 |
| mysql_stmt_free_result | プリペアドステートメントの実行によって生成された結果セット関連のメモリを解放するために使用されます。 |
| mysql_stmt_init | MYSQL_STMTハンドルを作成して返すために使用されます。 |
| mysql_stmt_insert_id | プリペアドINSERTまたはUPDATEステートメントによって自動インクリメント列に生成された値を返します。 |
| mysql_stmt_next_result | 複数結果プリペアドステートメントの実行中に次の結果を返すか開始します。 |
| mysql_stmt_num_rows | 結果セット内の行数を返します。 |
| mysql_stmt_param_count | プリペアドステートメントに存在するパラメータの数を返します。 |
| mysql_stmt_param_metadata | パラメータメタデータを結果セットとして返します。 |
| mysql_stmt_prepare | ストリングstmt_strが指すSQL文をプリペアド処理し、ステータス値を返します。 |
| mysql_stmt_reset | サーバー上のステートメント、mysql_stmt_send_long_data()で送信されたデータ、非バッファリングの結果セット、および現在のエラーをリセットするために使用されます。 |
| mysql_stmt_result_metadata | プリペアドステートメントの結果セットメタデータを取得するために使用されます。 |
| mysql_stmt_row_seek | プリペアドステートメント結果セット内の任意の行を検索するために使用されます。 |
| mysql_stmt_row_tell | プリペアドステートメント結果セット行カーソルの現在の位置を返します。 |
| mysql_stmt_send_long_data | アプリケーションがパラメータデータをセグメント(または「ブロック」)ごとにサーバーに送信できるようにします。 |
| mysql_stmt_sqlstate | 最後に呼び出されたプリペアドステートメント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 | 結果セットを1行ずつ検索するために使用されます。 |
| mysql_warning_count | 前のSQLステートメントを実行する間に生成されたエラー、警告、およびコメントの数を返します。 |
C APIオブジェクトリスト
| オブジェクト | 説明 |
|---|---|
| MYSQL | 処理対象 |
| MYSQL_RES | 結果オブジェクト |
| MYSQL_ROW | 結果行オブジェクト |
| MYSQL_FIELD | 結果列情報オブジェクト |
| MYSQL_FIELD_OFFSET | 結果列のオフセットオブジェクト |
| my_ulonglong | ベーシック型 |
| my_bool | ベーシック型 |
詳細情報
OceanBase Connector/Cの詳細と使用方法については、『OceanBase Connector/C』を参照してください。