<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 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 有貓相伴的日子 閱讀(2034) 評論(0)  編輯  收藏 所屬分類: unix/windows C 程序設計
    本站不再更新,歡迎光臨 java開發技術網
    主站蜘蛛池模板: 亚洲AV永久无码精品网站在线观看 | 亚洲国产无线乱码在线观看| 亚洲乱码国产一区三区| 成年大片免费视频| 91香蕉国产线在线观看免费 | 亚洲国产成人精品女人久久久| 久久受www免费人成_看片中文| 青青操视频在线免费观看| 杨幂最新免费特级毛片| 亚洲精品国产高清在线观看| 亚洲伊人久久大香线焦| 久久亚洲精品人成综合网| 亚洲精品国产精品乱码不卡√| 亚洲精品国产精品乱码不卡| 国产zzjjzzjj视频全免费| 在线观看免费为成年视频| 亚洲精品动漫免费二区| 免免费国产AAAAA片| 亚洲免费观看在线视频| 在线看无码的免费网站| 99久久精品免费精品国产| 一级毛片不卡片免费观看| 免费国产99久久久香蕉| 97人妻精品全国免费视频| 在线涩涩免费观看国产精品 | 亚洲线精品一区二区三区影音先锋 | 亚洲日韩激情无码一区| 老司机亚洲精品影视www| 国产亚洲一区区二区在线 | a毛片免费全部播放完整成| a级毛片免费观看在线| 有码人妻在线免费看片| 一区二区三区免费视频观看| 成人在线免费视频| 国产精品无码永久免费888| 成人无码区免费A∨直播| 免费国产叼嘿视频大全网站| 在线观看免费中文视频| 成年免费大片黄在线观看岛国 | 亚洲综合一区无码精品| 亚洲精品无码高潮喷水A片软|