- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]MYSQL_C_API详解
mysql api for C 详细介绍(1)
2009-11-22 16:33
C API 代码是随MySQL 分发的,它被包含在mysqlclient 库且允许C 程序存取一个数据库。
在 MySQL 源代码分发中的很多客户是用C 编写的。如果你正在寻找演示怎样使用C API
的例子,看一下这些客户程序。
大多数其他客户 API(除了Java 的所有)都使用mysqlclient 库与MySQL 服务器通信。这意
味着,例如,你能利用很多被其他客户程序使用的同一环境变量,因为他们从库中引用。对
这些变量的一张表,见12.1 不同的MySQL 程序的概述。
客户有一个最大通讯缓冲区大小。初始分配的缓冲区大小(16K 字节) 自动地增加到最大尺
寸(缺省的最大值是24M)。因为缓冲区大小只是按保证需求而被增加,简单地增加缺省的最
大限制并不造成更多被消耗。该尺寸检查主要是一个对错误的查询和通讯包的检查。
通讯缓冲区必须足够大以便一个单独的 SQL 语句(对客户-服务器传输)和一行返回的数据
(对服务器-客户传输)。每个线程的通讯缓冲区被动态扩大到最大限制来处理任何查询或行。
例如,如果你包含大到16M 数据的BLOB 值,你必须有一个至少 16M 通讯缓冲区限制(在
服务器和客户两端)。客户的缺省最大值是24M,但是在服务器端的缺省最大值是1M。你
可以在服务器启动时通过改变 max_allowed_packet 参数的值来改变它。见10.2.3 调节服
务器参数。
MySQL 服务器在每个查询后缩小每个通讯缓冲区到net_buffer_length 个字节。对客户,与
一个连接相关的缓冲区的大小没被减少,直到连接被关闭,在此时客户内存被回收。
如果你用线程的编程,你应该用--with-thread-safe-client 编译MySQL C API,这将使C API
线程对每个连接更安全。你可以让2 个线程共享相同的连接,只要如果你做下列事情:
两个线程不能同时在同一个连接上发送查询到 MySQL 。特别是你必须保证在一个
mysql_query()和mysql_store_result()之间没有其他线程正在使用同一个连接。
许多线程能存取用mysql_store_result()检索出来的不同结果集合。
如果你使用mysql_use_result,你必须保证没有其他线程在同一个连接上正在询问任何东
西,直到结果集合被关闭。
20.2 C API 数据类型
MYSQL
这个结构表示对一个数据库连接的句柄,它被用于几乎所有的MySQL 函数。
MYSQL_RES
这个结构代表返回行的一个查询的(SELECT, SHOW, DESCRIBE, EXPLAIN)的结果。从查
询返回的信息在本章下文称为结果集合。
MYSQL_ROW
这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。
(如果字段值可能包含二进制数据,你不能将这些视为空终 止串,因为这样的值可以在内
部包含空字节) 行通过调用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()和mysql_insert_id()。这
种类型提供 0 到1.84e19 的一个范围。在一些系统上,试图打印类型my_ulonglong 的值
将不工作。为了打印出这样的值,将它变换到unsigned long 并且使用一个%lu 打印格式。
例如:
printf (Number of rows: %lu\n, (unsigned long) mysql_num_rows(result));
MYSQL_FIELD 结构包含列在下面的成员:
char * name
字段名,是一个空结尾的字符串。
char * table
包含该字段的表的名字,如果它不是可计算的字段。对可计算的字段,table 值是一个空字
符串。
char * def
这字段的缺省值,是一个空结
您可能关注的文档
- [计算机硬件及网络]计算机组成原理之外围设备.ppt
- [计算机硬件及网络]软件编程.doc
- [计算机硬件及网络]黄章进计算机图形学第二章opengl系统.pdf
- [计算机软件及应用]04_Transact SQL 程序设计.ppt
- [计算机软件及应用]05 指针.ppt
- [计算机软件及应用]05-数组.ppt
- [计算机软件及应用]09-继承、多态、泛型.pdf
- [计算机软件及应用]050125_PHP_2.ppt
- [计算机软件及应用]1Fortify Source Code Analysis Suite介绍.ppt
- [计算机软件及应用]1_Define-cn.ppt
- 中国政治史第5讲.ppt
- 绩效驱动下的人才激励机制-洞察及研究.docx
- 《量子加密在金融交易信息保护中的量子随机数生成与应用》教学研究课题报告.docx
- 高中生物“分子生物学”教学策略与评价方法研究教学研究课题报告.docx
- 《失能老人长期照护服务模式中的护理人力资源配置与培养策略研究》教学研究课题报告.docx
- 数字化赋能下高中英语学习情感数据与学生态度培养研究教学研究课题报告.docx
- 2025年书法教育直播平台教学效果与反馈优化报告.docx
- 2025年乡村生态康养度假村人力资源配置策略.docx
- 2025年书法教育直播平台在线互动教学案例分析与启示.docx
- 《旅游景区智慧服务体系建设中的旅游市场细分与精准营销》教学研究课题报告.docx
最近下载
- 检测单位各部门岗位职能职责.doc VIP
- 2025内蒙古鄂尔多斯市公安机关招聘留置看护警务辅助人员115人笔试参考题库附答案解析.docx VIP
- 模电教案-李国丽.doc
- 2023版中国结直肠癌及癌前病变内镜诊治共识PPT课件.pptx VIP
- 证监会现场核查工作底稿-A股首次公开发行IPO保荐底稿.docx VIP
- UIC513-1994铁路车辆乘坐舒适性评估.pdf VIP
- 2025年医学课件-右心声学造影.pptx VIP
- 企业内部控制培训课件完整版(164页PPT).ppt VIP
- 2024年秋人教版七年级英语上册全册课件:Unit 7.pptx VIP
- Unit 6 A day in the life Section B (课件)-2024-2025学年人教版英语七年级上册.pptx VIP
文档评论(0)