Mysql入门系列:MYSQL客户机程序3—产生连接代码模块
2006-12-31 10:51:36 来源:WEB开发网common.h 声明common.c 中这些例程的原型:
要想访问公共例程,应在源文件中包括common.h。请注意, common.c 同样包括common.h。那就是说,如果common.c 中的函数定义与头文件中的声明不匹配,则立即得到一个编译程序警告。同样,如果更改common.c 中的调用次序而没有相应地更改common.h,则当重新编译common.c 时,编译程序将发出警告。
有人会问为什么要发明包装函数do _ disconnect( ),而它使用得还这么少。do _ disconnect( )和mysql_close() 等价。但是假设在断开连接时,都有一些要执行的额外清除。则通过调用已经完全控制的包装函数,可以修改该包装函数来做需要的事情,对于所做的任何断开的操作,这种更改统一生效。如果直接调用mysql_ close( ),则不能做到这点。在前面,笔者声称对在多个程序中或在单个程序内部多处使用的函数中,将代码封装成模块化代码是有好处的。前面介绍一个理由,还有一些理由参见下面的两个样例。
■ 样例1在MySQL3 .22以前的版本中,mysql_real_connect() 调用与它现在稍微有些不同:即没有数据库名称参数。如果想利用旧的MySQL客户机库使用do _ connect( ),则它不能工作。然而,可以修改do _ connect( ),使它可在3.22版以前的版本上运行。这就
意味着,通过修改do _ connect( ),可以增加使用它的所有程序的可移植性。如果将这些连接代码直接嵌入到每个客户机中,则必须独立地修改它们中的每一个。
要想修正do _ connect( ),使它可以处理mysql_real_connect() 的旧格式,那么就可以使用包括当前MySQL版本MySQL_VERSION_ID 宏。更改了的do_connect() 测试MySQL_VERSION_ID 值,并使用mysql_real_connect() 的正确格式:
更多精彩
赞助商链接