资源描述:
《使用c连接mysql--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、使用C连接Mysql>> ----在数据库的应用开发中,常常会遇到性能和代价的之间矛盾。以在开发股市行情查询和交易系统中遇到的问题为例,要在实时记录1000多只股票每分钟更新一次的行情数据的同时,响应大量并发用户的数据查询请求。考虑到性价比和易维护性,系统又要求在基于PC服务器,ySQL的Benchmark中可以看到,MySQL的性能非常出众(当然,测试的MySQL系统可能作了优化,被测数据可能是针对MySQL选择的),而且MySQL提供了对ySQL的执行代码及源代码。注意,ySQL的根目录是c:mysql,可暂不改动my.f)。在NT的控制台窗口中,进入MySQL的执行目录(c:
2、mysqlin),执行 ----C:mysqlinmysqld-shareysqlinmysqlmysql ----建立数据库连接,出现mysql>提示符后,执行 ----mysql>DELETEFROMuserySQL客户端应用的开发 ----MySQL提供了丰富的数据接口API,包括C、C++、Perl、PHP、Python、TCL等API和 JDBC,ODBC接口。出于性能考虑,我们采用了MySQL的CAPI进行开发。现以VisualC++ 环境为例,作一简单介绍。 ---123下一页>>>>这篇文章来自..,。-新建一YSQL*myData;
3、 MYSQL_RES*res; MYSQL_FIELD*fd; MYSQL_ROYSQL*)0)) //初始化数据结构 mysql_real_connect(myData,NULL, //连接数据库 root,your_passytable //新建一张表 (timedatetime,s1char(6), s2char(11),s3int,s4int)); if(mysql_query(myData,szSqlText)) //执行SQL语句 {//执行SQL语句出错 ErrLog(Can'tcreatetable); mysql_close(my
4、Data); returnFALSE; } } sprintf(szSqlText, insertintomytable //向表中插入数据 values('2000-3-1021:01:30', //注意时间的格式 'Test','MySQLTest',2000,3)); if(mysql_query(myData,szSqlText)) {//执行SQL语句出错 ErrLog(Can'tinsertdatatotable); mysql_close(myData); returnFALSE; }
5、 sprintf(szSqlText,select*frommytable); if(mysql_query(myData,szSqlText)) //进行数据检索 { //执行SQL语句出错 mysql_close(myData); returnFALSE; } else { res=mysql_store_result(myData); //取得查询结果 i=(int)mysql_num_roysql_fetch_field(res); i++) strcpy(aszFlds[i],fd->name); //取得各字段名 for(i=1;r
6、oysql_fetch_roysql_num_fields(res); //取得记录中的字段数 printf(Record#%ld:-,i++); for(k=0;k<j;k++) //输出各字段的值 printf(Fld#%d(%s):%s,k+1,aszFlds[k], (((roysql_free_result(res); } } else {//连接数据库出错 ErrLog(Can'tconnecttothemysq上一页123下一页>>>>这篇文章来自..,。lserver); mysql_close(myData); returnF
7、ALSE; } mysql_close(myData); returnTRUE; } ----对其中几个函数作简单说明,详细说明,可参考MySQL文档: ----1.MYSQL*mysql_init(MYSQL*mysql) ----初始化一个类型为MYSQL的数据结构,为执行mysql_real_connect()做准备。参数 mysql为指向该结构的指针,如果mysql为NULL,则新建并初始化一个MYSQL的数据结构。 新建的结构将