本站不再更新,欢迎光临 java开发技术网
随笔-230  评论-230  文章-8  trackbacks-0
今天写的例子,只贴代码,不使用文字说明.
mysqltool.h
#include <stdio.h>
#include 
<stdlib.h>
#include 
<winsock.h>
#include 
<mysql.h>


int xinsert(MYSQL *mysql,char *strsql)
{    
     
int t; 
     MYSQL_RES 
*res;
     t
=mysql_real_query(mysql,strsql,(unsigned int)strlen(strsql));

     
if(t){
           printf( 
"Error id=%d  Error: %s\n",mysql_errno(mysql),mysql_error(mysql));
           
return mysql_errno(mysql);
     }
else{
         res
=mysql_store_result(mysql);  
         printf(
"插入行数=%d\n",mysql_affected_rows(mysql));
         mysql_free_result(res);
     }

     
return 0;

}

int xupate(MYSQL *mysql,char *strsql)
{    
     
int t; 
     MYSQL_RES 
*res;
     t
=mysql_real_query(mysql,strsql,(unsigned int)strlen(strsql));
     
if(t){
           printf( 
"Error id=%d  Error: %s\n",mysql_errno(mysql),mysql_error(mysql));
           
return mysql_errno(mysql);
     }
else{
         res
=mysql_store_result(mysql);  
         printf(
"更新行数=%d\n",mysql_affected_rows(mysql));
         mysql_free_result(res);
     }
     
return 0;
}

int xdelete(MYSQL *mysql,char *strsql)
{    
     
int t; 
     MYSQL_RES 
*res;
     t
=mysql_real_query(mysql,strsql,(unsigned int)strlen(strsql));
     
if(t){
           printf( 
"Error id=%d  Error: %s\n",mysql_errno(mysql),mysql_error(mysql));
           
return mysql_errno(mysql);
     }
else{
         res
=mysql_store_result(mysql);  
         printf(
"删行数=%d\n",mysql_affected_rows(mysql));
         mysql_free_result(res);
     }
     
return 0;

}

one.c 代码如下:
#include <stdlib.h>
#include 
<winsock.h>
#include 
<mysql.h>
#include 
<stdio.h>
#include 
<mysqltool.h>

int main()
{
      MYSQL mysql;     
//mysql连接 
      MYSQL_RES *res; //这个结构代表返回行的一个查询结果集 
      MYSQL_ROW row; //一个行数据的类型安全(type-safe)的表示
      char *query;  //查询语句 
      int t,r;
      mysql_init(
&mysql);

      
      
if (!mysql_real_connect(&mysql,"localhost""lottobar""123456""lottobar",3306,NULL,0))
      {
         printf( 
"Error connecting to database: %s\n",mysql_error(&mysql));
      }  
else 
         printf(
"Connected\n");
     
      
      query
="SET CHARACTER SET GBK"//设置编码 
      t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
      
if(t)
      {
           printf(
"编码设置失败\n");
      }
      query
=" select * from demo ";
      t
=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
      
if(t)
      {
          printf(
"执行查询时出现异常: %s",mysql_error(&mysql));
          
      }
else
          printf(
"[%s] 构建成功 \n",query);
      res
=mysql_store_result(&mysql);
      
while(row=mysql_fetch_row(res))
      {                              
           
for(t=0;t<mysql_num_fields(res);t++)
           {
               printf(
"%s\t",row[t]);
           }
           printf(
"\n");
      }
      mysql_free_result(res);
       
      t
=mysql_real_query(&mysql,"SET AUTOCOMMIT =0",(unsigned int)strlen("SET AUTOCOMMIT =0"));
      
if(t){
            printf(
"启用手工事务失败\n");
      }
else{
            printf(
"启用手工事务成功\n");
      }
      t
=mysql_real_query(&mysql,"Begin ;",(unsigned int)strlen("Begin ;"));
      query
="insert into demo(name,age)values('老裴','89')";
      
int inset_result=xinsert(&mysql,query);
      query
="delete  from demo  where name='老裴'";
      
int delete_result=xdelete(&mysql,query);
      query
="update demo set name='裴屋村' where name='ccd' and inc_id=13";
      
int update_result=xupate(&mysql,query); 
      
      query
="insert into demo(inc_id,name,age)values(16,'老裴','89')";//执行会出现异常的语句 
      int fail_result=xinsert(&mysql,query);
      
      
if(inset_result==0 && delete_result==0 && update_result==0 && fail_result==0){
           printf(
"事务提交\n");
           t
=mysql_real_query(&mysql,"COMMIT;",(unsigned int)strlen("COMMIT;"));
      }
else{
           printf(
"事务回滚\n");
           t
=mysql_real_query(&mysql,"ROLLBACK;",(unsigned int)strlen("ROLLBACK;"));
      }
      
      
return 0;  
}

posted on 2008-03-15 17:33 有猫相伴的日子 阅读(1821) 评论(0)  编辑  收藏 所属分类: unix/windows C 程序设计

只有注册用户登录后才能发表评论。


网站导航:
 
本站不再更新,欢迎光临 java开发技术网