本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          隨筆-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(
          "插入行數(shù)=%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(
          "更新行數(shù)=%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(
          "刪行數(shù)=%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; //這個結(jié)構(gòu)代表返回行的一個查詢結(jié)果集 
                MYSQL_ROW row; //一個行數(shù)據(jù)的類型安全(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"//設(shè)置編碼 
                t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
                
          if(t)
                {
                     printf(
          "編碼設(shè)置失敗\n");
                }
                query
          =" select * from demo ";
                t
          =mysql_real_query(&mysql,query,(unsigned int)strlen(query));
                
          if(t)
                {
                    printf(
          "執(zhí)行查詢時出現(xiàn)異常: %s",mysql_error(&mysql));
                    
                }
          else
                    printf(
          "[%s] 構(gòu)建成功 \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(
          "啟用手工事務(wù)失敗\n");
                }
          else{
                      printf(
          "啟用手工事務(wù)成功\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')";//執(zhí)行會出現(xiàn)異常的語句 
                int fail_result=xinsert(&mysql,query);
                
                
          if(inset_result==0 && delete_result==0 && update_result==0 && fail_result==0){
                     printf(
          "事務(wù)提交\n");
                     t
          =mysql_real_query(&mysql,"COMMIT;",(unsigned int)strlen("COMMIT;"));
                }
          else{
                     printf(
          "事務(wù)回滾\n");
                     t
          =mysql_real_query(&mysql,"ROLLBACK;",(unsigned int)strlen("ROLLBACK;"));
                }
                
                
          return 0;  
          }

          posted on 2008-03-15 17:33 有貓相伴的日子 閱讀(2045) 評論(0)  編輯  收藏 所屬分類: unix/windows C 程序設(shè)計
          本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          主站蜘蛛池模板: 乐山市| 平乐县| 萨迦县| 依兰县| 望江县| 广汉市| 双鸭山市| 库车县| 海安县| 怀化市| 平罗县| 呼和浩特市| 滦南县| 甘孜县| 清涧县| 丹巴县| 汨罗市| 宁陕县| 马山县| 防城港市| 确山县| 靖安县| 乾安县| 博客| 会理县| 井冈山市| 通州区| 钟祥市| 瓦房店市| 洛隆县| 宁海县| 内江市| 徐水县| 崇义县| 九寨沟县| 孟连| 合肥市| 烟台市| 三亚市| 汕尾市| 稻城县|