程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話銜接並操作Sedna XML數據庫的辦法

C說話銜接並操作Sedna XML數據庫的辦法

編輯:關於C++

C說話銜接並操作Sedna XML數據庫的辦法。本站提示廣大學習愛好者:(C說話銜接並操作Sedna XML數據庫的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話銜接並操作Sedna XML數據庫的辦法正文


本文實例講述了C說話銜接並操作Sedna XML數據庫的辦法。分享給年夜家供年夜家參考。詳細以下:

#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; 
}

願望本文所述對年夜家的C說話法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved