第一章 Mysql C 帮助手册.pdf

25.2.MySQLCAPI 25.2.1.CAPI数据类型 25.2.2.CAPI函数概述 25.2.3.CAPI函数描述 25.2.4.CAPI预处理语句 25.2.5.CAPI预处理语句的数据类型 25.2.6.CAPI预处理语句函数概述 25.2.7.CAPI预处理语句函数描述 25.2.8.CAPI预处理语句方面的问题 25.2.9. 多查询执行的CAPI处理 25.2.10. 日期和时间值的CAPI处理 25.2.11.CAPI线程函数介绍 25.2.12.CAPI嵌入式服务器函数介绍 25.2.13. 使用CAPI时的常见问题 25.2.14. 创建客户端程序 25.2.15. 如何生成线程式客户端 CAPI代码是与MySQL一起提供的。它包含在mysqlclient库中,并允许C程序访问数据 库。 MySQL源码分发版的很多客户端是用C语言编写的。如果你正在寻找能演示如何使用C API 的示例,可参看这些客户端程序。你可以在MySQL源码分发版的客户端目录下找到它 们。 大多数其他客户端API (除了Connector/J和Connector/NET)采用mysqlclient库来与 MySQL服务器进行通信。这意味着(例如),你可以利用很多相同环境变量(与其他客户 端程序使用的环境变量相同)带来的好处,这是因为它们是从库中引用的。关于这些变量的 详细清单,请参见第 章:客户端和实用工具程序。 8 客户端具有最大的通信缓冲区大小。初始分配的缓冲区大小(16KB)将自动增加到最大(最 大为16MB)。由于缓冲区大小将按需增加,简单地增加默认的最大限制,从其本身来说不 会增加资源使用。该大小检查主要是检查错误查询和通信信息包。 通信缓冲区必须足够大,足以包含 条 语句 (用于客户端 服务器通信)以及 行返回的 1 SQL - 1 数据 (用于服务器 客户端通信)。每个线程的通信缓冲区将动态增加,以处理直至最大限制- 的任何查询或行。例如,如果BLOB值包含高达16MB的数据,那么通信缓冲区的大小限 制至少为16MB(在服务器和客户端)。客户端的默认最大值为16MB,但服务器的默认最大 值为1MB。也可以在启动服务器时,通过更改max_allowed_packet参数的值增加它。请 参见7.5.2节,“调节服务器参数”。 每次查询后,MySQL服务器会将通信缓冲区的大小降至net_buffer_length字节。对于客 户端,不会降低与连接相关缓冲区大小,直至连接关闭为止,此时,客户端内存将被收回。 关于使用线程的编程方法,请参见25.2.15节,“如何生成线程式客户端”。关于在相同程序 创建包含“服务器”和“客户端”的独立应用程序的更多信息(不与外部MySQL服务器通信), 请参见25.1节,“libmysqld,嵌入式MySQL服务器库”。 25.2.1.CAPI数据类型 MYSQL 该结构代表 个数据库连接的句柄。几乎所有的 函数均使用它。不应尝试拷贝 1 MySQL MYSQL结构。不保证这类拷贝结果会有用。 MYSQL_RES 该结构代表返回行的查询结果(SELECT,SHOW,DESCRIBE,EXPLAIN)。在本节的剩余部 分,将查询返回的信息称为“结果集”。 MYSQL_ROW 这是1行数据的“类型安全”表示。它目前是按照计数字节字符串的数组实施的。(如果字段值 可能包含二进制数据,不能将其当作由Null终结的字符串对待,这是因为这类值可能会包 含Null字节)。行是通过调用mysql_fetch_row()获得的。 MYSQL_FIELD 该结构包含关于字段的信息,如字段名、类型和大小。这里详细介绍了其成员。通过重复调 用mysql_fetch_field(),可为每个字段获得MYSQL_FIELD结构。字段值不是该结构的组 成部份,它们包含在MYSQL_ROW结构中。 MYSQL_FIELD_OFFSET 这是MySQL字段列表偏移量的“类型安全”表示(由mysql_field_seek()使用)。偏移量是 行内的字段编号,从0开始。 my_ulonglong 用于行数以及mysql_affected_rows()、mysql_num_rows()

文档评论(0)

1亿VIP精品文档

相关文档