如何使用ODB(How to use odb On windows)

摘要:
特定命令行参数:http://www.codesynthesis.com/products/odb/doc/odb.xhtml例如:odb-databasemysql--generate query D:MCSF_BackupMAINFeaturesMcsfProtocolDBWrapperCsfProtocolDB2Wrapperinincludecatalog.hxx生成5。将生成的3个文件添加到项目中以供使用。例如,Insert:#include//std::auto_Ptr#include#include#includeinclude//使用namespacestd添加对生成文件#include“person.hxx”#include”personodb.hxx“的引用;使用namespaceodb::核心;Intmain{try{auto_ptr<database>db;unsignedlongjohn_id,jane_id,joe_id;//Createafewpersistentpersonobjects.<endl;return1;}}6。注意:在定义的持久类中,经常使用几个#pragma。
1.下载ODB library:ODB Compiler,Common Runtime Library,Database Runtime Library。


(注意:ODB Compiler为odb-x.x.x-i686-windows, Database Runtime Libraries为你想要用的数据库对应的库)

2.解压,安装
   你可以在根目录执行odb,也可以加到环境变量里。 





3.头文件中定义类,上边为正常类,下边为修改为odb的persistent 类


class person { ... private: string email_; string name_; unsigned short age_; };
 #include <string>
 #include <odb/core.hxx>  
 #pragma db object
  class person
  {
    ...
  private:
    friend class odb::access;
    person () {}

    #pragma db id
    string email_;

    string name_;
    unsigned short age_;
  };

4.利用odb产生数据库支持代码,只有这样子才能利用上面定义的persistent类进行查询。具体命令行参数:http://www.codesynthesis.com/products/odb/doc/odb.xhtml

如:


生成


5.添加生成的3个文件到工程里,使用。 如Insert:


#include <memory>   // std::auto_ptr
#include <iostream>

#include <odb/database.hxx>
#include <odb/transaction.hxx>

#include <odb/mysql/database.hxx>

//添加生成文件的引用
#include "person.hxx"
#include "person-odb.hxx"

using namespace std;
using namespace odb::core;

int
main (int argc, char* argv[])
{
  try
  {
    auto_ptr<database> db (new odb::mysql::database (argc, argv));

    unsigned long john_id, jane_id, joe_id;

    // Create a few persistent person objects.
    //
    {
      person john ("John", "Doe", 33);
      person jane ("Jane", "Doe", 32);
      person joe ("Joe", "Dirt", 30);

      transaction t (db->begin ());

      // Make objects persistent and save their ids for later use.
      //
      john_id = db->persist (john);
      jane_id = db->persist (jane);
      joe_id = db->persist (joe);

      t.commit ();
    }
  }
  catch (const odb::exception& e)
  {
    cerr << e.what () << endl;
    return 1;
  }
}
  
6.注意:

在定义的persistent 类中, 有几个#pragma经常使用。
1)指定字段为主键: #pragmadbid
2)  指定字段为数据库相应类型:#pragmadbtype("VARCHAR(64) binary not null")
3)指定字段为数据库相应的列:#pragmadb column("CatalogName")
4)指定数据库的主键自增长: #pragma db idauto
在用odb产生数据库支持代码时,有时候persistent类中引用了别的库, 在编译时可以通过-I添加路径。
比如:


免责声明:文章转载自《如何使用ODB(How to use odb On windows)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇AC日记——回文子串 openjudge 1.7 34MSComm控件使用详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL Server 连接字符串和身份验证

在做数据开发的时候,常常需要用到数据库连接字符串,很多时候都不知道连接字符串中每个字段的具体含义,今天就在这里总结一下,方便以后使用。下面就用一个简单的例子开始 Data Source=(local); Database=WebDB; User ID=WebUser; Password=WebUser; pooling=true; min pool siz...

大数据量下高并发同步的讲解

对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、同步和异步的区别和联系 所谓同步,可以理解为在执行完一个函...

PHP实现IP访问限制及提交次数的方法详解

一、原理 提交次数是肯定要往数据库里写次数这个数据的,比如用户登陆,当用户出错时就忘数据库写入出错次数1,并且出错时间,再出错写2,当满比如5次时提示不允许再登陆,请明天再试,然后用DateDiff计算出错时和now()的时间,如果大于24就再开放让他试。 封IP的话特别是给IP断就比较简单了, 先说给IP段开放的情况:先取出客户访问的IP,为了解释方便,...

MySQL 的简单介绍及实施

MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被Sun公司收购。2009年,甲骨文公司收购Sun公司,MySQL成为Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。 1. 数据库产品时代演变 第一代数据库架构:合的时代 RDBMS 关系型数据库时代   代...

ACCESS和MSSQL-如何随机读取数据库记录

查询语句只要这样写,就可以随机取出记录了 SQL="Select top 6 * from Dv_bbs1 where isbest = 1 and layer = 1 order by newID() desc" 在ACCESS里SELECT top 15 id FROM tablename order by rnd(id) SQL Server:Sel...

Oracle数据库之二 Oracle的下载与安装

二、Oracle 的下载与安装 2.1、Oracle 简介 Oracle 公司是全球最大的信息管理软件及服务供应商,成立于 1977 年,主要的业务是推动电子商务平台的搭建。Oracle 公司有自己的服务器、数据库、开发工具、编程语言,在行业软件上还有企业资源计划(ERP)软件、客户关系管理(CRM)软件、人力资源管理软件(HCM)等大型管理系统,所以...