暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库学习Q&A 101:OceanBase Connector/C是什么?

OceanBase Connector/C 是一个基于 C/C++ 的 OceanBase 客户端开发组件,支持 C API Lib 库。

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用于执行由空终止字符串 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用于获取当前结果集行的一列。
mysql_stmt_field_count返回最新 Prepared Statement 的列数。
mysql_stmt_free_result用于释放执行 Prepared Statement 产生的结果集相关的内存。
mysql_stmt_init用于创建并返回一个 MYSQL_STMT 句柄。
mysql_stmt_insert_id返回由预处理的 INSERT 或 UPDATE 语句为 AUTO_INCREMENT 列生成的值。
mysql_stmt_next_result在多结果 Prepared Statement 执行中返回或启动下一个结果。
mysql_stmt_num_rows返回结果集中的行数。
mysql_stmt_param_count返回 Prepared Statement 中存在的参数数量。
mysql_stmt_param_metadata将参数元数据作为结果集返回。
mysql_stmt_prepare预处理由字符串 stmt_str 指向的 SQL 语句并返回一个状态值。
mysql_stmt_reset用于重置服务器上的语句、使用 mysql_stmt_send_long_data() 发送的数据、未缓冲的结果集和当前错误。
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返回在执行前一个 SQL 语句期间生成的错误、告警和注释的数量。

C API 对象列表

对象说明
MYSQL处理对象
MYSQL_RES结果对象
MYSQL_ROW结果行对象
MYSQL_FIELD结果列信息对象
MYSQL_FIELD_OFFSET结果列的偏移对象
my_ulonglong基础类型
my_bool基础类型
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论