最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言連接并操作Sedna XML數(shù)據(jù)庫的方法

 更新時(shí)間:2015年06月29日 10:11:39   作者:紅薯  
這篇文章主要介紹了C語言連接并操作Sedna XML數(shù)據(jù)庫的方法,實(shí)例分析了C語言操作XML文件的相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了C語言連接并操作Sedna XML數(shù)據(jù)庫的方法。分享給大家供大家參考。具體如下:

#include "libsedna.h" 
#include "stdio.h" 
int handle_error(SednaConnection* conn, 
         const char* op, 
         int close_connection) { 
  printf("%s failed: \n%s\n", op, SEgetLastErrorMsg(conn)); 
  if(close_connection == 1) SEclose(conn); 
  return -1; 
} 
int main() { 
 struct SednaConnection conn = SEDNA_CONNECTION_INITIALIZER; 
 int bytes_read, res, value; 
 char buf[1024]; 
 /* Turn off autocommit mode */ 
 value = SEDNA_AUTOCOMMIT_OFF; 
 res = SEsetConnectionAttr(&conn, SEDNA_ATTR_AUTOCOMMIT, 
              (void*)&value, sizeof(int)); 
 /* Connect to the database */ 
 res = SEconnect(&conn, "localhost", "test_db", 
         "SYSTEM", "MANAGER"); 
 if(res != SEDNA_SESSION_OPEN) 
  return handle_error(&conn, "Connection", 0); 
 /* Begin a new transaction */ 
 res = SEbegin(&conn); 
 if(res != SEDNA_BEGIN_TRANSACTION_SUCCEEDED) 
  return handle_error(&conn, "Transaction begin", 1); 
 /* Load file "region.xml" into the document "region" */ 
 res = SEexecute(&conn, "LOAD 'region.xml' 'region'"); 
 if(res != SEDNA_BULK_LOAD_SUCCEEDED) 
  return handle_error(&conn, "Bulk load", 1); 
 /* Execute XQuery statement */ 
 res = SEexecute(&conn, "doc('region')/*/*"); 
 if(res != SEDNA_QUERY_SUCCEEDED) 
  return handle_error(&conn, "Query", 1); 
 /* Iterate and print the result sequence */ 
 while((res = SEnext(&conn)) != SEDNA_RESULT_END) { 
  if (res == SEDNA_ERROR) 
   return handle_error(&conn, "Getting item", 1); 
  do { 
   bytes_read = SEgetData(&conn, buf, sizeof(buf) - 1); 
   if(bytes_read == SEDNA_ERROR) 
    return handle_error(&conn, "Getting item", 1); 
   buf[bytes_read] = '\0'; 
   printf("%s\n", buf); 
  } while(bytes_read > 0); 
 } 
 /* Drop document "region" */ 
 res = SEexecute(&conn, "DROP DOCUMENT 'region'"); 
 if(res != SEDNA_UPDATE_SUCCEEDED) 
  return handle_error(&conn, "Drop document", 1); 
 /* Commit transaction */ 
 res = SEcommit(&conn); 
 if(res != SEDNA_COMMIT_TRANSACTION_SUCCEEDED) 
  return handle_error(&conn, "Commit", 1); 
 /* Close connection */ 
 res = SEclose(&conn); 
 if(res != SEDNA_SESSION_CLOSED) 
  return handle_error(&conn, "Close", 0); 
 return 0; 
}

希望本文所述對(duì)大家的C語言程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

青冈县| 柳州市| 法库县| 博爱县| 平原县| 会东县| 库伦旗| 通河县| 瓦房店市| 宁武县| 衡山县| 崇阳县| 内黄县| 淳安县| 北流市| 扶沟县| 土默特左旗| 昭觉县| 红桥区| 南陵县| 手游| 福泉市| 襄垣县| 保靖县| 郓城县| 贡嘎县| 丘北县| 游戏| 沅陵县| 济源市| 石楼县| 周宁县| 保定市| 渭源县| 深州市| 新蔡县| 全南县| 化隆| 朝阳区| 三亚市| 湖北省|