Skip to content
A C++ Implementation of the Active Record Pattern
C C++ Shell Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
doc
examples Postgresql support Oct 11, 2015
include
profiling
src
test
.gitignore Postgresql support Oct 11, 2015
.travis.yml
AUTHORS
COPYING
ChangeLog
DEVELOPMENT.md
Gemfile
INSTALL
INSTALL.md
Makefile.am
Makefile.in
NEWS
README
README.md
Rakefile
VERSION
aclocal.m4
compile
config.h.in
configure Improve autoconf maintenance Oct 12, 2015
configure.ac
depcomp
install-sh
missing

README.md

Build Status

ActiveRecord - a C++ implementation of the Active Record pattern.

Databases supported:

  • PostgreSQL
  • SQLite

Installation

See the file INSTALL.md.

Quick Start Guide

Here's a Hello World! example, that saves a record to the database, and retrieves it:

#include <active_record/type.h>
#include <active_record/base.h>
#include <active_record/connection.h>
#include <active_record/query.h>
#include <iostream>

using namespace ActiveRecord;

class Greeting: public ActiveRecord::Base< Greeting > {
 public:
  AR_CONSTRUCTORS( Greeting )
  static Table table( Connection * connection ) {
    Table td( connection, "greetings" );
    td.fields() = fields
                  ( "salute",   ActiveRecord::text )
                  ( "thing",    ActiveRecord::text )
                  ( "language", ActiveRecord::text );
    return td;
  }
};

AR_DECLARE( Greeting )

int main( int argc, const char *argv[] ) {
  Connection connection;
  connection.connect( options
                      ( "adapter", "sqlite" )
                      ( "database", "greetings.sqlite3" ) );
  Greeting::setup( &connection );
  connection.update_database();
  Greeting greeting( attributes
                  ( "salute", "Hello" )
                  ( "thing", "World" )
                  ( "language", "English" ) );
  greeting.save();

  Greeting greeting1( 1 );
  cout << "In " << greeting1[ "language" ] << " you say:" << endl;
  cout << "'" << greeting1[ "salute" ] << " " << greeting1[ "thing" ] << "!'" << endl;

  return 0;
}

Development and Tests

See the file DEVELOPMENT.md.

Other information

  • Usage
    • See the examples directory
  • Documentation
    • See the doc directory
Something went wrong with that request. Please try again.