最近才开始接触VC6.0的环境,而且还要和mysql交互.在网上搜了很多资料,太杂而且大部分是调用MFC库实现的.不是我所希望的用C库实现的.终于在网上找到了一个很好入门的例子.在这里和大家分享一下.
提示:安装mysql的时候要选择完全安装(complete),然后就会有mysql的包含文件和lib库文件,在project菜单中添加libmysql.lib,tools菜单下的link中添加包含头文件和库文件的路径.
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <mysql.h>
int main( int argc, char * argv[] )
{
char szTargetDSN[] = "test";//数据库名字
char szSqlText[500]="";
char aszFlds[ 25 ][ 25 ];
MYSQL myData ;
MYSQL_RES * res ;
MYSQL_FIELD * fd ;
MYSQL_ROW row ;
int i,j,k;
BOOL bCreate = TRUE;
//初始化数据结构
//连接数据库
mysql_init(&myData);
if (mysql_real_connect( &myData, "localhost","root", "envenler",szTargetDSN,3306, NULL, 0 ))
{
//构造SQL语句//新建一张表
if(bCreate)
{
sprintf(szSqlText, "create table mytable (time datetime, s1 char(6),s2 char(11), s3 int, s4 int)");
//执行SQL语句
//执行SQL语句出错
//ErrLog( "Can't create table") ;
if (mysql_query( &myData, szSqlText))
{
mysql_close( &myData ) ;
return FALSE ;
}
}
//向表中插入数据//注意时间的格式
sprintf(szSqlText,"insert into mytable values('2012-7-27 21:01:30','Test','MySQLTest',2012,7)");
if (mysql_query( &myData, szSqlText))
{
//执行SQL语句出错
//ErrLog( "Can't insert data to table") ;
mysql_close( &myData ) ;
return FALSE ;
}
sprintf(szSqlText, "select * from mytable ");
if (mysql_query( &myData, szSqlText))
//进行数据检索
{
//执行SQL语句出错
mysql_close( &myData ) ;
return FALSE ;
}
else
{
res = mysql_store_result( &myData ) ;
//取得查询结果
i = (int) mysql_num_rows( res ) ;
//取得有效记录数
printf( "Query: %s\n%ld records found:\n", szSqlText, i ) ;
for ( i = 0 ; fd = mysql_fetch_field( res ) ;i++)//++
strcpy( aszFlds[ i ], fd->name ) ;
//取得各字段名
while (row = mysql_fetch_row(res))//++
//依次读取各条记录
{
j = mysql_num_fields( res ) ;
//取得记录中的字段数
printf( "Record #%ld:-\n", i ) ;
for ( k = 0 ; k < j ; k++)
//输出各字段的值
printf(" Fld #%d (%s): %s\n",k , aszFlds[ k ],(((row[k]==NULL)||(!strlen(row[k])))?"NULL":row[k])) ;
//puts( "==============================\n" ) ;
}
mysql_free_result( res ) ;
}
}
else
{
//连接数据库出错
//ErrLog( "Can't connect to the mysql server ") ;
mysql_close( &myData ) ;
return FALSE ;
}
mysql_close( &myData ) ;
return TRUE ;
}