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

興海北路

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

統(tǒng)計(jì)

  • 隨筆 - 85
  • 文章 - 0
  • 評(píng)論 - 17
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類

隨筆檔案

收藏夾

全是知識(shí)啊

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

VC使用C API 連接操作MySQL數(shù)據(jù)庫(kù)

一切盡在代碼中,代碼中也太多了if/else,可以對(duì)它進(jìn)行更好的函數(shù)及至類的封裝,規(guī)范的處理好異常。

  1. #include <windows.h>
  2. //需要在VC的Options設(shè)置一個(gè)include路徑指向'%mysql_home%/inlude'目錄   
  3. #include <mysql.h>
  4. //設(shè)置一個(gè)lib路徑指向'%mysql_home%/lib/opt'目錄 (mysql5.0是個(gè)目錄)   
  5. #pragma comment(lib,"libmysql.lib")    
  6. #define host_name "localhost"  //數(shù)據(jù)庫(kù)服務(wù)器   
  7. #define db_name "test"         //數(shù)據(jù)庫(kù)名   
  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,字符串?dāng)?shù)組   
  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初始化之后的操作如果有錯(cuò)誤,可以用mysql_errno(MYSQL*)和   
  30.    //mysql_errer(MYSQL*) 分別獲得出錯(cuò)代號(hào)和描述   
  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.    //第一次運(yùn)行創(chuàng)建一個(gè)表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 語(yǔ)句可用mysql-affected_rows()得到受作用的行   
  55.   printf( "INSERT statement succeeded: %lu rows affected\n" ,   
  56.    (unsigned  long )mysql_affected_rows(conn));   
  57.  }   
  58.     
  59.   //查詢數(shù)據(jù)   
  60.  sprintf(szSqlText, "select * from mytable" );   
  61.     
  62.   //執(zhí)行成功則返回零   
  63.   if  (mysql_query(conn,szSqlText) != 0) {   
  64.   mysql_close(conn);   
  65.    return  0;   
  66.  }   
  67.   else  {   
  68.    //立即從服務(wù)器返回所有行,存儲(chǔ)到本地,產(chǎn)生結(jié)果集,失敗則返回NULL   
  69.   rs = mysql_store_result(conn);   
  70.      
  71.    //結(jié)果集是保留在服務(wù)器上,fetch_row時(shí)才逐行從服務(wù)器上取   
  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是一個(gè)指向數(shù)值數(shù)組的指針,row[0],row[1]...row[列數(shù)-1]   
  77.    //所有的數(shù)據(jù)類型都以字符串返回,即使是數(shù)字型,要進(jìn)行串轉(zhuǎn)換   
  78.    //NULL指針代表數(shù)據(jù)庫(kù)字段的NULL,應(yīng)經(jīng)常檢查列是否為NULL   
  79.    while ((row = mysql_fetch_row(rs)) != NULL){   //返回NULL,則說(shuō)明不再有行   
  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.    //使用完后,釋放結(jié)果集占用內(nèi)存   
  88.   mysql_free_result(rs);   
  89.  }   
  90.  mysql_close(conn);   
  91.   return  0;   
  92. }   
  93. //最后,注意查詢語(yǔ)句中字符串的轉(zhuǎn)義 select a from t where a=''1',是要出錯(cuò)的   
  94. //空字符轉(zhuǎn)換為'\0',這里的0 是可打印的ASCII 碼0,而不是空。   
  95. //反斜線、單引號(hào)和雙引號(hào)分別轉(zhuǎn)換為‘\\’、‘\'’ 和‘\"’   
  96. //你也可以用mysql_escape_string(to_str,from_str,from_len)轉(zhuǎn)換sql語(yǔ)句   
輸出結(jié)果是:
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 隨意門 閱讀(640) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   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>
            久久婷婷丁香| 欧美精品免费视频| 国产欧美91| 欧美人成在线| 欧美激情欧美激情在线五月| 欧美成人午夜免费视在线看片 | 欧美另类69精品久久久久9999| 在线精品国产成人综合| 亚洲欧美日韩在线一区| 亚洲一区二区av电影| 国产精品分类| 亚洲午夜久久久久久久久电影院| 99re热这里只有精品免费视频| 久久综合伊人77777蜜臀| 欧美成人激情视频| 亚洲激情电影中文字幕| 免费国产一区二区| 99热在线精品观看| 久久久久九九视频| 亚洲香蕉视频| 欧美激情亚洲自拍| 狠狠做深爱婷婷久久综合一区| 99精品久久久| 国产精品久久久久久久久搜平片| 久久亚洲精品一区| 国产日韩欧美在线| 一区二区三区四区五区视频| 校园春色综合网| 在线一区二区三区做爰视频网站| 久久精品一本| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 亚洲精品久久久久久久久久久久久 | 中国成人亚色综合网站| 一区二区三区国产精华| 欧美不卡视频一区| 久久久亚洲一区| 一区二区三区亚洲| 久热精品视频在线观看一区| 亚洲精品黄色| 欧美日韩国产综合在线| 欧美黄在线观看| 亚洲美女91| 一本一本久久a久久精品综合麻豆| 欧美jizzhd精品欧美巨大免费| 亚洲高清免费| 欧美天天在线| 99这里只有精品| 亚洲先锋成人| 亚洲电影在线看| 亚洲级视频在线观看免费1级| 欧美电影专区| 午夜一区在线| 免费成人av在线看| 亚洲与欧洲av电影| 久久一区亚洲| 欧美伦理a级免费电影| 欧美亚洲一区二区在线观看| 欧美一区二区三区在线观看 | 亚洲国产精品久久| 1000精品久久久久久久久| 美国三级日本三级久久99| 欧美日韩国产小视频在线观看| 久久本道综合色狠狠五月| 欧美女激情福利| 欧美激情一区二区久久久| 国产欧美1区2区3区| 亚洲欧洲精品一区二区三区| 亚洲乱码精品一二三四区日韩在线 | 久久亚洲一区| 欧美日韩国产精品自在自线| 久久色在线观看| 国产精品自拍网站| 亚洲午夜av| 午夜久久电影网| 亚洲美女福利视频网站| 在线精品视频免费观看| 久久精品国语| 欧美国产日韩视频| 亚洲国产小视频| 亚洲欧美久久久| 欧美一区二区黄色| 免费观看30秒视频久久| 正在播放亚洲| 久久久久久久综合| 欧美激情中文字幕一区二区| 亚洲欧洲日本专区| 欧美午夜精品久久久久久人妖 | 久久久国产精品一区| 国产精品久久久久aaaa| 亚洲欧美日韩国产精品| 久久久欧美精品sm网站| 亚洲啪啪91| 亚洲日本成人| 国模套图日韩精品一区二区| 久久精品国产一区二区三区| 亚洲国语精品自产拍在线观看| 亚洲一区二区在线| 亚洲国产欧美一区二区三区同亚洲 | 一本一本a久久| 另类激情亚洲| 久久成人国产| 午夜激情综合网| 一区二区日本视频| 在线精品国产欧美| 国产欧美三级| 国产欧美日韩精品丝袜高跟鞋| 乱人伦精品视频在线观看| 亚洲午夜激情在线| avtt综合网| 日韩亚洲精品视频| 日韩天堂在线观看| 亚洲精品日产精品乱码不卡| 国产毛片精品视频| 亚洲成色www8888| 欧美日韩国产一区二区| 欧美成人精品一区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美在线精品一区| 亚洲永久免费| 久久aⅴ国产紧身牛仔裤| 欧美一级在线视频| 久久男人av资源网站| 久久一区精品| 国产欧美日本| 亚洲高清在线观看一区| 亚洲人成人一区二区在线观看| 亚洲人久久久| 欧美在线视频观看| 欧美激情 亚洲a∨综合| 亚洲激情偷拍| 亚洲欧美日韩国产一区| 麻豆精品网站| 午夜精品www| 美女网站在线免费欧美精品| 欧美激情精品久久久久久久变态| 欧美精品 国产精品| 国产手机视频一区二区| 久久av资源网站| 亚洲图中文字幕| 玖玖玖免费嫩草在线影院一区| 欧美日韩精品一区二区| 精品51国产黑色丝袜高跟鞋| 中日韩视频在线观看| 亚洲春色另类小说| 久久综合一区二区三区| 国产精品成人一区二区三区夜夜夜| 国产亚洲精品久久久久婷婷瑜伽| 久久久爽爽爽美女图片| 国产精品v日韩精品| 亚洲精品小视频在线观看| 免费在线看一区| 久久―日本道色综合久久| 国内成人精品2018免费看| 亚洲欧美日本国产有色| 欧美视频亚洲视频| 日韩视频免费观看高清在线视频| 久久精品欧美日韩精品| 午夜视频精品| 国产亚洲欧美日韩精品| 狂野欧美性猛交xxxx巴西| 国产精品超碰97尤物18| 在线亚洲+欧美+日本专区| 午夜宅男欧美| 欧美亚洲免费| 一区二区三区高清不卡| 亚洲无毛电影| 一区二区三区毛片| 欧美大色视频| 欧美电影打屁股sp| aa级大片欧美| 在线 亚洲欧美在线综合一区| 99re6这里只有精品| 亚洲电影av在线| 99国产精品久久久久久久成人热 | 国产一区二区剧情av在线| 久久久av网站| 一本色道婷婷久久欧美| 免费看av成人| 亚洲欧美一区二区三区久久| 韩国av一区二区三区| 欧美日韩美女在线| 久久久噜噜噜| 午夜免费久久久久| 在线免费观看欧美| 欧美色综合网| 免费国产自线拍一欧美视频| 亚洲午夜在线观看视频在线| 亚洲国产精品一区二区久| 久久国产精品99国产精| 一本色道久久| 免费成人在线视频网站| 久久久91精品国产一区二区三区 | 亚洲欧美成人一区二区在线电影 | 午夜精品久久久久久99热| 亚洲成色777777女色窝| 国产在线观看91精品一区| 欧美三级视频| 欧美精品在线一区二区| 美女免费视频一区| 久久久久成人网|