SOCI

C++封装的数据库访问库
授权协议 未知
开发语言 C/C++
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 不详
投 递 者 禄和宜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

soci是一个用C++封装的数据库访问库,目前通过 “前端(应用程序)/核心/后端(数据库适配)”模式支持firebird,mysql,sqlite3,oracle,postgresql,odbc多种数据库;作为扩展,您也可以自己针对具体不同库或应用编写自定义后端代码。貌似另外一个poco开源库的数据库封装系参考soci;

int id = 0;
Person p;
session sql(oracle, connectString);
sql << "select first_name, last_name, date_of_birth "
       "from persons where id = " << id,
       into(p);

 

目前已有整合到boost的版本,提供Jamfile,请参考

http://code.google.com/p/boost-soci/

  • 说明 SOCI库是一个数据操作的库,支持很多语言。SOCI库的接口已经支持了基本上所有的数据库。下文主要是C++下SOCI库的使用,搭配的是postgresql数据库。 安装 使用cmake工具(提前安装cmake)。 $ git clone https://github.com/SOCI/soci.git $ cd soci $ mkdir build $ cd build $ cmake -

  • 基本操作 #include #include #include #include #include "soci.h" // 使用soci访问sqlite3. // 参考 http://blog.csdn.net/littlewhite1989/article/details/54691367 // soci官方文档test-sqlite3.cpp // 创建表 static void Create

  • 摘要 获取 SOCI 库的查询结果时,如果转换的字段没有精确匹配,会导致异常。 字段类型可以从 column_properties 中获取。 row r; const column_properties & props = r.get_properties(i); props.get_data_type(); // 字段类型 字段类型 soci::data_type 与 C++ 类型对应关系如下

  • 一直以来,笔者都在不停寻找一种更人性化的数据库访问方式(并不是说默认的方式不好,而是有时候的确在模块化设计中不太方便)。 后来有幸在php中找到codeigniter的ActiveReord,详细参考这篇文章: 抽离CodeIgniter的数据库访问类! 然而c++却始终用着最原始的方式,昨天趁着项目要用的机会,在网上搜索了好久,总算让我找到两套c++的数据库访问框架: soci litesql

  • SOCI是一个数据库操作的库,并不是ORM库,它仍旧需要用户编写sql语句来操作数据库,只是使用起来会更加方便,主要有以下几个特点 以stream方式输入sql语句 通过into和use语法传递和解析参数 支持连接池,线程安全 由此可见它只是一个轻量级的封装,因此也有更大的灵活性,后端支持oracle,mysql等,后续示例均基于mysql 安装 推荐使用cmake编译 git clone git

  • 一直以来,笔者都在不停寻找一种更人性化的数据库访问方式(并不是说默认的方式不好,而是有时候的确在模块化设计中不太方便)。 后来有幸在php中找到codeigniter的ActiveReord,详细参考这篇文章: 抽离CodeIgniter的数据库访问类! 然而c++却始终用着最原始的方式,昨天趁着项目要用的机会,在网上搜索了好久,总算让我找到两套c++的数据库访问框架: soci litesql

  • SOCI是一个比较不错的C++使用的数据库操作库,封装了常见的多种数据库。Linux上安装较为简单,在官方仓库即有开发的安装包,因此在此记录Win32上使用Visual Studio编译源码的方法,并以最简单的Sqlite3后端数据库为例。 安装Sqlite3 SQLite是一个小巧流行的嵌入式数据库,一般开发使用有三种方式 下载一个 sqlite3.h ,然后使用 sqlite3.dll 导出库

  • Soci库linux下编译方法 Soci库的linux编译方法 1、下载soci库源码 2、在目标机器上配置数据库环境 以oracle为例:(其他数据库只需要简单安装客户端即可) 下载oracle客户端安装包 oracle-instantclient-basic-12.1.0.5-1.i386.rpmoracle-instantclient-devel-12.1.0.5-1.i386.rpmora

  • Soci库linux下的编译方法 Soci库的linux编译方法 1、下载soci库源码 2、在目标机器上配置数据库环境 以oracle为例:(其他数据库只需要简单安装客户端即可) 下载oracle客户端安装包 oracle-instantclient-basic-12.1.0.5-1.i386.rpmoracle-instantclient-devel-12.1.0.5-1.i386.rpmor

  • 软件安装 安装oracle客户端 连接oracle需要oracle的客户端软件或者oracle服务器软件。本例以oracle客户端为例。 rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm oracle-insta

 相关资料
  • 问题内容: 我正在寻找无需安装数据库服务器就可以运行SQL语句的数据库。即我需要仅给定数据库文件和任何外部库就能够选择/插入/更新数据库。 这是我的情况: 我正在使用C ++解析许多奇数格式的二进制文件,并且我想将它们存储到某种类型的数据库中,以提供对数据的更方便的访问。 将文件插入数据库后,我将使用C#编写界面/ GUI,用户可通过该界面/ GUI与数据库进行交互。 我使用C ++来提高读取文件

  • ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到 Web 页的技术。可以使用 ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源。如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现 ADO 命令语句并不复杂而且容易掌握。同样地,如果您是一

  • 对许多Web应用程序而言,数据库都是其核心所在。数据库几乎可以用来存储你想查询和修改的任何信息,比如用户信息、产品目录或者新闻列表等。 Go没有内置的驱动支持任何的数据库,但是Go定义了database/sql接口,用户可以基于驱动接口开发相应数据库的驱动,5.1小节里面介绍Go设计的一些驱动,介绍Go是如何设计数据库驱动接口的。5.2至5.4小节介绍目前使用的比较多的一些关系型数据驱动以及如何使

  • 程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。 而如何定义数据的存储格式就是一个大问题。如果我们自己来定义存储格式,比如保存一个班级所有学生的成绩单: 名字 成绩 Michael 99 Bob 85 Bart 59 Lisa 87 你可以用一个文本文件保存,一行保存一个学生,用,隔开

  • 程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。 而如何定义数据的存储格式就是一个大问题。如果我们自己来定义存储格式,比如保存一个班级所有学生的成绩单: 名字 成绩 Michael 99 Bob 85 Bart 59 Lisa 87 你可以用一个文本文件保存,一行保存一个学生,用,隔开

  • 主要内容:ADO.Net对象模型,数据提供者,数据集(DataSet),连接到数据库,示例1,示例3应用程序与数据库进行通信,首先检索存储在数据库中的数据,并以便于用户使用的方式显示;其次,通过插入,修改和删除数据来更新数据库中的数据。 Microsoft ActiveX Data Objects.Net(ADO.Net)是一个模型,是.NET应用程序用于检索,访问和更新数据的.Net框架的一部分。 ADO.Net对象模型 ADO.Net对象模型不过是通过各种组件的结构化流程流程。对象模型可以描

  • 主要内容:实例本文主要为大家介绍 Lua 数据库的操作库:LuaSQL。他是开源的,支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。 本文为大家介绍MySQL的数据库连接。 LuaSQL 可以使用 LuaRocks 来安装可以根据需要安装你需要的数据库驱动。 LuaRocks 安装方法: $ wget http: //luarocks.org /rel

  • 主要内容:示例动态网页的主要特点就是能及时更新数据,这些更新的数据来源于数据库。学习本节内容需要您了解 JDBC,可以使用 JDBC 连接 MySQL 数据库。 本节数据库使用 MySQL 5.7,你可以点击 MySQL 官方网站 下载相应的 jar 包。 注意:MySQL 8.0 及之后的版本与之前的数据库连接有所不同: 首先驱动 com.mysql.jdbc.Driver 更换为 com.mysql.cj.