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语言程序设计有所帮助。

(0)

相关推荐

  • VC中使用ADO开发数据库应用程序简明教程

    本文实例讲述了VC中使用ADO开发数据库应用程序的方法.分享给大家供大家参考,具体如下: 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 OLE.DB 提供者访问和操作数据库服务器中的数据.ADO 最主要的优点是易于使用.速度快.内存支出少和磁盘遗迹小.ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量.高性能的接口.之所以

  • c++连接mysql数据库的两种方法(ADO连接和mysql api连接)

    第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

  • VC实现ODBC数据库操作实例解析

    本文以VC实例介绍了实现数据库操作的各种方法,包括打开数据库.关联记录集.读取Excel数据.执行SQL查询.创建存取字符串等,相信对于初学VC的朋友有一定的参考价值,主要功能代码如下: //打开数据库 CDatabase database; database.OpenEx( _T( "DSN=zhuxue" ),CDatabase::noOdbcDialog);//zhuxue为数据源名称 //关联记录集 CRecordset recset(&database); //查询记

  • VC基于ADO技术访问数据库的方法

    本文实例讲述了VC基于ADO技术访问数据库的方法.分享给大家供大家参考.具体如下: 一.在StdAfx.h文件中添加 复制代码 代码如下: #import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF") 导入ADO引擎. 二.数据库应用层操作 void CADOExample1Dlg::OnBtnQuery() {

  • 用C语言操作MySQL数据库的通用方法

    在我们的web应用中,虽然PHP.JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,在这篇文章中能够有所体现. 先看结构体: 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql { NET net; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for S

  • c语言连接mysql数据库的实现方法

    我这里也有一份网上找到的:/201205/other/C_link_mySql51.rar C连接MySql5.1所需文件.rar 附带一个不错的例子: #include <string.h> #include <stdlib.h> #include <stdio.h> #include <winsock2.h> #include <mysql/mysql.h>/*注意要包含这个头文件*/ #pragma comment(lib,"li

  • VC用Ado接口连接和使用数据库及注意事项

    一.阅读本文所需注意的其它事项 1.进行方法调用时,所传递的参数的类型的转换(可能存在比本文更简便的处理方法但我未发现) 2.每个源文件的每行注释说明了其文件名 3.请关注相关头文件包含关系 4.请关注文中所有中文注释 5.更多的内容请参阅 "VC安装目录\Include\adoint.h"文件,adoint即ActiveX Data Object InterFace(菜 鸟请勿惊慌,这仅仅只是个名称) 二.下面的源文件与您的数据库应用程序不直接相关,但其目标代码(生成的.obj文件)

  • 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))

  • Java连接并操作Sedna XML数据库的方法

    本文实例讲述了Java连接并操作Sedna XML数据库的方法.分享给大家供大家参考.具体分析如下: Sedna 是一个原生的XML数据库,提供了全功能的核心数据库服务,包括持久化存储.ACID事务.索引.安全.热备.UTF8等.实现了 W3C XQuery 规范,支持全文搜索以及节点级别的更新操作. import ru.ispras.sedna.driver.*; public class SednaClient { public static void main(String args[])

  • C语言实现访问及查询MySQL数据库的方法

    本文实例讲述了C语言实现访问及查询MySQL数据库的方法.分享给大家供大家参考,具体如下: 1.添加头文件路径(MySQL安装路径中的include路径) 2.添加库文件(直接从MySQL安装路径中copy libmysql.lib即可) 3.编程操作数据库 代码 // AccessToMySQL.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <mysql.h>

  • SQLSERVER简单创建DBLINK操作远程服务器数据库的方法

    本文实例讲述了SQLSERVER简单创建DBLINK操作远程服务器数据库的方法.分享给大家供大家参考,具体如下: --配置SQLSERVER数据库的DBLINK exec sp_addlinkedserver @server='WAS_SMS',@srvproduct='',@provider='SQLOLEDB',@datasrc='10.131.20.100' exec sp_addlinkedsrvlogin 'WAS_SMS','false', NULL,'CustomSMS','Sql

  • go语言通过odbc访问Sql Server数据库的方法

    本文实例讲述了go语言通过odbc访问Sql Server数据库的方法.分享给大家供大家参考.具体如下: 这里需要用到go-odbc库,开源地址为:https://github.com/weigj/go-odbc 复制代码 代码如下: package main; import (     "fmt"     "database/sql"     _"odbc/driver" ) func main(){     conn,err := sql.O

  • 实现laravel 插入操作日志到数据库的方法

    1 . 创建一个中间件 执行: php artisan make:middleware OperationLog 2 . 在中间件中编写一个writeLog() 或者直接写在handle里面 <?php namespace App\Http\Middleware; use App\User; use Closure; use Illuminate\Support\Facades\Auth; class OperationLog { /** * Handle an incoming request

  • django连接Mysql中已有数据库的方法详解

    我的Mysql中已经有了项目需要使用的相关数据库,现在需要通过django来获取Mysql里的数据并使用,下面记录配置django与mysql的连接过程. (此处默认您已经建好了django框架,如果没有准备好django,请参照我本篇文章 https://www.jb51.net/article/249861.htm 首先需要在项目的settings.py文件中配置mysql的连接信息:把之前配置的sqlite配置信息替换.之前默认的数据库配置信息如图,是与sqlite连接的 现在我们需要替换

  • Navicat 连接服务器端中的docker数据库的方法

    启动docekr中mysql 容器 使用命令: docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.7 -p 3306:3306 表示将docker 中的3306端口映射到主机的3306 端口 –name mysql01 容器名为mysql01 -e MYSQL_ROOT_PASSWORD=xxx 设置mysql 的密码,后面会使用 -d mysql:5.7 使用mysql镜像 成功运行后的结果

  • ASP.net与SQLite数据库通过js和ashx交互(连接和操作)

    ASP.net与SQLite数据库通过js和ashx交互(连接和操作): 废话(也是思路):用的是VS2010,打算做网站前后台.由于不喜欢前台语言里加些与html和css和js的其他内容,想实现前后台语言的分离,与前后台通过js的ajax实现交互,故很多百度出来的方法不成立,虽听说ashx过时,但是他实现了我要的效果:即前后台语言不是相互嵌入实现交互,而是通过js实现(有接口就可以). 由于领导指定用SQLite,故这两天还折腾了SQLite,不过对于这种小型的网站,它是个很好的选择(不需要部

  • thinkphp3.x连接mysql数据库的方法(具体操作步骤)

    本文实例讲述了thinkphp3.x连接mysql数据库的方法.分享给大家供大家参考,具体如下: 惯例配置文件:ThinkPHP/conf/convention.php (1)在配置文件中填写配置信息(配置文件:"./xmall/conf/config.php"): 示例: <?php return array( //'配置项'=>'配置值' /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'loc

随机推荐