你的位置:phpArticle  >  高级技术讨论  >  windows编程  >  在BCB中用MySQL C 直接联结MySQL的方法
 

在BCB中用MySQL C 直接联结MySQL的方法

日期:2008-03-15 13:32:12  点击:  作者:  来源:
发表评论 | 查看评论 | 加入收藏 | 推荐给朋友 | 打印本文 | 字体:[ ]

1、安装MySQL 4.1并正确设置
2、在MySQL安装目录下寻找libdebug或者libopt,两个目录下都有libmysql.dll和libmysql.lib,该动态链接库就是我们BCB所要调用的东东,但是由于该DLL是用VC编译的,与BCB的DLL格式不同,所以需要使用implib工具重新导出 libmysql.lib,在命令行模式下格式为:
c:>implib NewName.lib libmysql.dll
3、将刚才新导出的NewName.lib文件拷贝到你所创建的应用程序目录下
4、在BCB菜单下选择:project->Add to Project,然后在弹出的文件对话框中选择NewName.lib
5、在BCB菜单下选择:project->Option->Directories/Conditionals,将MySQL的include和lib目录追加到里面,比如我的是:
include path: (原有内容);C:Program FilesMySQLMySQL Server 4.1include
Library path: (原有内容);C:Program FilesMySQLMySQL Server 4.1libdebug
或者:(原有内容);C:Program FilesMySQLMySQL Server 4.1libopt
在上面Library path你可以选择一个,这最好与你所导出的.lib文件目录一致
6、在你要使用API的Form页面的.cpp文件首部加上:
#include
该.h文件是对API函数和类型的说明
7、在VC中MySQL使用了SOCKET宏,所以在BCB中要追加说明
typedef unsigned int SOCKET;
如果没有这一条说明,编译也会出错
8、OK,检察你其他的代码,然后使用MySQL C API函数验证一下吧。
//---------------------------------------------------------------------------
MYSQL执行函数定义
MYSQL_RES * Tform_main::sql(AnsiString sql)
{
MYSQL mysql;
MYSQL_RES * result;
mysql_init(&mysql);
mysql_real_connect(&mysql,form_main->url.c_str(),form_main->username.c_str(),form_main->password.c_str(),form_main->database.c_str(),0,NULL,0);
mysql_query(&mysql,"set names 'gb2312'");
if(mysql_query(&mysql,sql.c_str()))
{
mysql_free_result(result);
mysql_close(&mysql);
free(&mysql);
return NULL;
}
else
{
result=mysql_store_result(&mysql);
mysql_close(&mysql);
free(&mysql);
return result;
}
}
//---------------------------------------------------------------------------
//MYSQL函数调用
MYSQL_RES *result_tmp;
result_tmp=form_main->sql("select ...");
int i=0;
if(result_tmp!=NULL)
{
MYSQL_ROW row;
while(row=mysql_fetch_row(result_tmp))
{
.......
}
delete row;
}
mysql_free_result(result_tmp);
 
责任编辑:niuboy