青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

興海北路

---男兒仗劍自橫行
<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統計

  • 隨筆 - 85
  • 文章 - 0
  • 評論 - 17
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類

隨筆檔案

收藏夾

全是知識啊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

VC使用C API 連接操作MySQL數據庫

一切盡在代碼中,代碼中也太多了if/else,可以對它進行更好的函數及至類的封裝,規范的處理好異常。

  1. #include <windows.h>
  2. //需要在VC的Options設置一個include路徑指向'%mysql_home%/inlude'目錄   
  3. #include <mysql.h>
  4. //設置一個lib路徑指向'%mysql_home%/lib/opt'目錄 (mysql5.0是個目錄)   
  5. #pragma comment(lib,"libmysql.lib")    
  6. #define host_name "localhost"  //數據庫服務器   
  7. #define db_name "test"         //數據庫名   
  8. #define user_name "root"       //用戶名   
  9. #define password ""            //密碼   
  10. int  main( int  argc, char  * argv[]) {   
  11.     
  12.   char  szSqlText[500] ;   
  13.     
  14.  MYSQL *conn;   
  15.  MYSQL_RES *rs;   
  16.  MYSQL_ROW row;    //注意它的聲明 typedef char **MYSQL_ROW,字符串數組   
  17.   BOOL  bCreate = FALSE;   
  18.     
  19.  conn = mysql_init(NULL);   
  20.   if (conn == NULL)   
  21.  {   
  22.   fprintf(stderr, "mysql_init() failed (probably out of memory)\n" );   
  23.   exit(1);   
  24.  }   
  25.     
  26.   if  (mysql_real_connect(conn,host_name,user_name,password,   
  27.   db_name,MYSQL_PORT,NULL,0) == NULL)   
  28.  {   
  29.    //在MYSQL初始化之后的操作如果有錯誤,可以用mysql_errno(MYSQL*)和   
  30.    //mysql_errer(MYSQL*) 分別獲得出錯代號和描述   
  31.   fprintf(stderr, "mysql_real_connect() failed:\nError %u (%s)\n" ,   
  32.    mysql_errno(conn),mysql_error(conn));   
  33.   exit(1);   
  34.  }   
  35.     
  36.  printf( "connect to db successful.\n" );   
  37.   if  (bCreate) {   
  38.    //第一次運行創建一個表mytable   
  39.   sprintf(szSqlText, "create table mytable(time datetime,s1 char(6),s2 char(11),s3 int,s4 int)" );   
  40.    if  (mysql_query(conn,szSqlText)) {   
  41.    printf( "Can't create table.\n" );   
  42.    mysql_close(conn);   
  43.     return  0;   
  44.   }   
  45.  }   
  46.  sprintf(szSqlText, "insert into mytable values('2000-3-10 21:01:30','Test','MySQLTest',2000,3)" );   
  47.   if  (mysql_query(conn,szSqlText)) {   
  48.   printf( "Insert values error:\nError %u (%s)\n" ,   
  49.    mysql_errno(conn),mysql_error(conn));   
  50.   mysql_close(conn);   
  51.    return  0;   
  52.  }   
  53.   else {   
  54.    //insert/delete/update 語句可用mysql-affected_rows()得到受作用的行   
  55.   printf( "INSERT statement succeeded: %lu rows affected\n" ,   
  56.    (unsigned  long )mysql_affected_rows(conn));   
  57.  }   
  58.     
  59.   //查詢數據   
  60.  sprintf(szSqlText, "select * from mytable" );   
  61.     
  62.   //執行成功則返回零   
  63.   if  (mysql_query(conn,szSqlText) != 0) {   
  64.   mysql_close(conn);   
  65.    return  0;   
  66.  }   
  67.   else  {   
  68.    //立即從服務器返回所有行,存儲到本地,產生結果集,失敗則返回NULL   
  69.   rs = mysql_store_result(conn);   
  70.      
  71.    //結果集是保留在服務器上,fetch_row時才逐行從服務器上取   
  72.    //rs = mysql_use_result(conn);   
  73.    //Get query result.   
  74.    int  count = ( int )mysql_num_rows(rs);   
  75.   printf( "Query: %s.\n%ld records found.\n" ,szSqlText,count);   
  76.    //MYSQL_ROW是一個指向數值數組的指針,row[0],row[1]...row[列數-1]   
  77.    //所有的數據類型都以字符串返回,即使是數字型,要進行串轉換   
  78.    //NULL指針代表數據庫字段的NULL,應經常檢查列是否為NULL   
  79.    while ((row = mysql_fetch_row(rs)) != NULL){   //返回NULL,則說明不再有行   
  80.     for (unsigned  int  i=0; i<mysql_num_fields(rs);i++){   
  81.      if (i>0)   
  82.     fputc('\t',stdout);   
  83.     printf( "%s" ,row[i]!=NULL ? row[i]: "NULL" );   
  84.    }   
  85.    fputc('\n',stdout);   
  86.   }   
  87.    //使用完后,釋放結果集占用內存   
  88.   mysql_free_result(rs);   
  89.  }   
  90.  mysql_close(conn);   
  91.   return  0;   
  92. }   
  93. //最后,注意查詢語句中字符串的轉義 select a from t where a=''1',是要出錯的   
  94. //空字符轉換為'\0',這里的0 是可打印的ASCII 碼0,而不是空。   
  95. //反斜線、單引號和雙引號分別轉換為‘\\’、‘\'’ 和‘\"’   
  96. //你也可以用mysql_escape_string(to_str,from_str,from_len)轉換sql語句   
輸出結果是:
connect to db successful.
INSERT statement succeeded: 1 rows affected
Query: select * from mytable.
8 records found.
2000-03-10 21:01:30     Test    MySQLTest       2000    3
2000-03-10 21:01:30     Test    MySQLTest       2000    3
2000-03-10 21:01:30     Test    MySQLTest       2000    3
2000-03-10 21:01:30     Test    MySQLTest       2000    3
2000-03-10 21:01:30     Test    MySQLTest       2000    3
Press any key to continue

posted on 2008-04-08 14:50 隨意門 閱讀(644) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美午夜精品久久久久久浪潮| 香蕉久久a毛片| 欧美日韩中文字幕在线| 国产欧美精品日韩精品| 亚洲精品在线视频观看| 亚洲激情视频在线观看| 另类天堂视频在线观看| 免费观看久久久4p| 在线看国产一区| 久久一二三国产| 亚洲影院高清在线| 欧美日韩视频在线第一区| 亚洲国产另类精品专区| 亚洲欧洲日产国码二区| 欧美成人精品| 亚洲三级免费| 亚洲午夜激情免费视频| 欧美午夜a级限制福利片| 宅男噜噜噜66一区二区66| 欧美一级久久久久久久大片| 国产日韩在线亚洲字幕中文| 久久成人亚洲| 亚洲第一页中文字幕| 妖精成人www高清在线观看| 欧美性色视频在线| 午夜精品国产精品大乳美女| 久久香蕉精品| 亚洲乱码国产乱码精品精天堂| 欧美日韩免费看| 亚洲欧美怡红院| 免费在线日韩av| 在线视频中文亚洲| 国产伦精品一区二区三区视频孕妇 | 中文欧美日韩| 久久久久久9999| 亚洲经典一区| 国产精品久久久久久久久免费桃花| 性亚洲最疯狂xxxx高清| 欧美高清成人| 亚洲主播在线播放| 国语自产偷拍精品视频偷| 欧美激情影音先锋| 午夜精品电影| 亚洲第一页自拍| 香蕉久久夜色精品国产使用方法| 在线观看av一区| 欧美日韩日日夜夜| 久久精品一区四区| av成人天堂| 欧美+亚洲+精品+三区| 亚洲一二三区在线| 尤物精品国产第一福利三区| 欧美三级小说| 久久久久网站| 亚洲一区二区三区久久| 亚洲国产精品久久精品怡红院| 欧美一区二粉嫩精品国产一线天| 亚洲国产精品一区二区尤物区| 国产精品久久久久久久久久久久| 欧美黄网免费在线观看| 国产精品永久免费视频| 免费成人av在线| 亚洲资源av| 亚洲欧洲在线免费| 久久亚洲欧美| 欧美一区二区国产| 亚洲午夜久久久久久尤物| 亚洲国产精品一区二区尤物区| 国产精品丝袜久久久久久app| 欧美激情精品久久久久久蜜臀| 欧美一级视频| 中文在线不卡视频| 亚洲美女少妇无套啪啪呻吟| 欧美成人乱码一区二区三区| 久久精品麻豆| 性8sex亚洲区入口| 亚洲永久精品大片| 99在线视频精品| 亚洲激情视频在线播放| 在线观看91精品国产麻豆| 国产三级欧美三级| 国产精品视频在线观看| 欧美视频精品一区| 欧美日韩精品一区二区在线播放 | 亚洲自拍偷拍视频| 99精品国产在热久久| 欧美另类69精品久久久久9999| 久久久久成人精品| 欧美主播一区二区三区| 亚洲欧美在线aaa| 亚洲性人人天天夜夜摸| 亚洲最新在线视频| 日韩香蕉视频| 在线视频一区二区| 亚洲无玛一区| 亚洲欧美日韩国产成人| 亚洲在线观看免费视频| 亚洲一线二线三线久久久| 亚洲天堂成人| 亚洲欧美综合网| 欧美一区在线看| 久久成人国产精品| 久久久久国产一区二区三区| 亚洲欧美在线免费观看| 午夜精品久久| 久久精品99国产精品日本| 久久精品国产一区二区三区| 久久久久久一区二区| 久久久亚洲成人| 男人的天堂成人在线| 亚洲高清视频在线观看| 亚洲六月丁香色婷婷综合久久| 日韩午夜激情av| 亚洲一区免费视频| 欧美在线免费观看| 久久一区欧美| 欧美精品一区在线播放| 国产精品国产三级国产| 国产欧美一区二区三区在线看蜜臀| 国产亚洲人成a一在线v站| 在线欧美电影| 这里只有精品在线播放| 欧美亚洲免费在线| 免费成人av在线| 亚洲美女少妇无套啪啪呻吟| 亚洲自拍啪啪| 老鸭窝亚洲一区二区三区| 欧美日韩成人免费| 国产性色一区二区| 亚洲国产欧美一区二区三区久久| 日韩视频免费观看高清在线视频| 中文久久精品| 久久在线91| 欧美精选一区| 日韩亚洲欧美高清| 性色av一区二区三区| 久久视频免费观看| 亚洲精品乱码久久久久久蜜桃91| 亚洲一区二区视频在线观看| 久久九九电影| 国产精品扒开腿做爽爽爽视频| 国内自拍一区| 国产精品一区二区黑丝| 亚洲人线精品午夜| 欧美伊人久久| 91久久综合| 欧美一区网站| 欧美日韩成人一区二区| 激情综合色综合久久综合| 亚洲无吗在线| 欧美国产亚洲另类动漫| 亚洲免费在线电影| 欧美国产一区在线| 韩国精品在线观看| 亚洲欧美久久久| 亚洲福利视频专区| 欧美一区二区三区在| 欧美日本韩国一区二区三区| 黄色成人免费网站| 亚洲免费在线观看视频| 欧美国产日韩免费| 欧美在线观看你懂的| 国产精品久久久久久av福利软件| 亚洲人精品午夜在线观看| 久久久人人人| 亚洲欧美日韩人成在线播放| 欧美日韩高清一区| 亚洲国产人成综合网站| 久久久精品五月天| 中文亚洲字幕| 欧美色区777第一页| 亚洲日本中文字幕| 欧美wwwwww| 久久精品国产精品| 国产欧美精品在线| 亚洲欧洲av一区二区| 亚洲老板91色精品久久| 嫩模写真一区二区三区三州| 国内揄拍国内精品久久| 久久av在线| 亚洲欧美激情四射在线日| 欧美午夜精品久久久久久超碰| 亚洲乱码一区二区| 欧美国产视频日韩| 免费看精品久久片| 亚洲国产精品热久久| 美女国内精品自产拍在线播放| 欧美一区网站| 国产午夜精品久久| 久久国产精品久久国产精品| 亚洲综合另类| 国产欧美三级| 久久精品视频在线播放| 欧美一区成人| 韩国欧美一区| 你懂的视频一区二区| 噜噜爱69成人精品| 亚洲日韩中文字幕在线播放| 亚洲国产精品久久久久婷婷884 | 国产日本亚洲高清|