MySQL数据库接口的VC实现与应用(2).docx

上传人:工**** 文档编号:562151642 上传时间:2022-10-30 格式:DOCX 页数:6 大小:13.62KB
返回 下载 相关 举报
MySQL数据库接口的VC实现与应用(2).docx_第1页
第1页 / 共6页
MySQL数据库接口的VC实现与应用(2).docx_第2页
第2页 / 共6页
MySQL数据库接口的VC实现与应用(2).docx_第3页
第3页 / 共6页
MySQL数据库接口的VC实现与应用(2).docx_第4页
第4页 / 共6页
MySQL数据库接口的VC实现与应用(2).docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《MySQL数据库接口的VC实现与应用(2).docx》由会员分享,可在线阅读,更多相关《MySQL数据库接口的VC实现与应用(2).docx(6页珍藏版)》请在金锄头文库上搜索。

1、 MySQL数据库接口的VC实现与应用(2)3.1 CDatabase类的实现 CDatabase类封装了MySQL数据库的功能,因此不具备通用性,只能在对MySQL的应用程序中使用。下面将依据C+要求及标准给出CDatabase类的详细构造以及相关简要介绍: class CDatabase public:BOOL UnLockTable(); /解锁BOOL LockTable(char* TableName,char* PRIORITY); /加锁int Reload(); /重新登陆,非零时返回错误信息char* GetState(); /效劳器状态char* GetServerInfo

2、(); /效劳器信息int GetProtocolInfo(); /协议信息char* GetHostInfo(); /主机信息char * GetClientInfo(); /客户机信息char* GetFieldName(int FieldNum); /字段名BOOL IsEnd(); /是否最终int DropDB(char *db); /删除数据库,非零时返回错误信息void SeekData(int offset); /查找指定数据int CreateDB(char *db); /创立数据库,非零时返回错误信息void FreeRecord(); /释放结果集unsigned int

3、 GetFieldNum(); /得到字段数BOOL ConnectDB(Database_Param *p); /连接数据库MYSQL_ROW GetRecord(); /得到结果(一个记录)my_ulonglong GetRowNum(); /得到记录数BOOL SelectDB(Data_Param *para); /选择数据库BOOL UpdateRecord(Data_Param *para); /更新记录BOOL SelectRecord(Data_Param *para); /选择记录BOOL InsertRecord(Data_Param *para); /插入记录BOOL D

4、elRecord(Data_Param *para); /删除记录BOOL SelectAll(Data_Param *para); /选择全部记录char * OutErrors(); /输出错误信息CDatabase(); /初始化数据库virtual CDatabase(); /关闭数据库连接 private: MYSQL mysql; /数据库连接句柄MYSQL_RES *query; /结果集MYSQL_ROW row; /记录集MYSQL_FIELD *field; /字段信息(构造体)BOOL FindSave(char *str); /查找并保存结果集; 通过CDatabase

5、类中定义的这些功能函数,我们可以通过远程或本机完成对MySQL数据库的绝大局部操控,并且由于定义了解锁和加锁功能,使得应用程序能够多线程或多进程地访问数据库,大大提高了效能。以上函数的详细功能都是通过调用C API函数实现的。 3.2 CDatabase类在VC中的应用 第一步 建立初始化MySQL对象,并且将其初始化。即定义CDatabase类对象,这样程序就会自动调用构造函数CDatabase(),完成初始化。 构造函数实现如下: CDatabase:CDatabase () mysql_init ( 完成初始化只需定义CDatabase类对象,即 CDatabase base; 其次步

6、连接效劳器,并连接需要的数据库。即调用ConnectDB(Database_Param *p)函数,构造体Database_Param中存放数据库参数,包括主机名、用户名、密码、数据库名等。该函数如返回TRUE表示连接胜利,否则表示失败。 连接函数实现如下: BOOL CDatabase:ConnectDB(Database_Param *p) if(!mysql_real_connect( / 输出错误信息return false;return true; 第三步 对数据库进展加锁。即调用LockTable(char* TableName,char* PRIORITY),对相应的表Table

7、Name完成相应属性PRIORITY的加锁,使程序兼容多线程功能。 加锁函数实现如下: BOOL CDatabase:LockTable(char* TableName,char* PRIORITY) char str50;sprintf(str,“LOCK TABLES %s %s“,TableName,PRIORITY);if(mysql_query(return true;第四步 完成数据库操作。即依据需要调用UpdateRecord(Data_Param *para)、SelectRecord(Data_Param *para)、InsertRecord(Data_Param *par

8、a)、DelRecord(Data_Param *para)等操作。其中的构造体Data_Param中存放数据库操作参数。上述两个构造体的定义在global.h中。 InsertRecord函数实现如下,其它实现方法相像: BOOL CDatabase:InsertRecord(Data_Param *para) char str80;sprintf(str,“insert into %s values(%s)“,para-tab_name,para-insert_val);if(mysql_query(return true; 第五步 解锁数据库。即调用UnLockTable(),完成对上述被加锁的表的解锁。 解锁函数实现如下: BOOL CDatabase:UnLockTable() if(mysql_query(return true; 第六步 关闭数据库连接。即调用析构函数CDatabase(),关闭数据库,并自动释放初始化时定义的CDatabase类对象。 析构函数如下: CDatabase:CDatabase() if(query)mysql_free_result(query);mysql_close( 留意:在编译程序时,必需参加MySQL的库文件libmySQL.lib。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号