aboutsummaryrefslogtreecommitdiff
path: root/inheritance/database.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-04-25 10:45:32 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-04-25 10:45:32 +0200
commitab994fdada3eebc794d6b1686f55a35420e4d758 (patch)
treeccfbdd212fc3a06fea8f68b07c01f68989d2e450 /inheritance/database.hxx
parent27245519b1a659eb849a31714df0090dc58bb87a (diff)
New example, inheritance/polymorphism
Also move the inheritance example to inheritance/reuse.
Diffstat (limited to 'inheritance/database.hxx')
-rw-r--r--inheritance/database.hxx92
1 files changed, 0 insertions, 92 deletions
diff --git a/inheritance/database.hxx b/inheritance/database.hxx
deleted file mode 100644
index af048c4..0000000
--- a/inheritance/database.hxx
+++ /dev/null
@@ -1,92 +0,0 @@
-// file : inheritance/database.hxx
-// copyright : not copyrighted - public domain
-
-//
-// Create concrete database instance based on the DATABASE_* macros.
-//
-
-#ifndef DATABASE_HXX
-#define DATABASE_HXX
-
-#include <string>
-#include <memory> // std::auto_ptr
-#include <cstdlib> // std::exit
-#include <iostream>
-
-#include <odb/database.hxx>
-
-#if defined(DATABASE_MYSQL)
-# include <odb/mysql/database.hxx>
-#elif defined(DATABASE_SQLITE)
-# include <odb/connection.hxx>
-# include <odb/transaction.hxx>
-# include <odb/schema-catalog.hxx>
-# include <odb/sqlite/database.hxx>
-#elif defined(DATABASE_PGSQL)
-# include <odb/pgsql/database.hxx>
-#elif defined(DATABASE_ORACLE)
-# include <odb/oracle/database.hxx>
-#elif defined(DATABASE_MSSQL)
-# include <odb/mssql/database.hxx>
-#endif
-
-inline std::auto_ptr<odb::database>
-create_database (int& argc, char* argv[])
-{
- using namespace std;
- using namespace odb::core;
-
- if (argc > 1 && argv[1] == string ("--help"))
- {
- cout << "Usage: " << argv[0] << " [options]" << endl
- << "Options:" << endl;
-
-#if defined(DATABASE_MYSQL)
- odb::mysql::database::print_usage (cout);
-#elif defined(DATABASE_SQLITE)
- odb::sqlite::database::print_usage (cout);
-#elif defined(DATABASE_PGSQL)
- odb::pgsql::database::print_usage (cout);
-#elif defined(DATABASE_ORACLE)
- odb::oracle::database::print_usage (cout);
-#elif defined(DATABASE_MSSQL)
- odb::mssql::database::print_usage (cout);
-#endif
-
- exit (0);
- }
-
-#if defined(DATABASE_MYSQL)
- auto_ptr<database> db (new odb::mysql::database (argc, argv));
-#elif defined(DATABASE_SQLITE)
- auto_ptr<database> db (
- new odb::sqlite::database (
- argc, argv, false, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE));
-
- // Create the database schema. Due to bugs in SQLite foreign key
- // support for DDL statements, we need to temporarily disable
- // foreign keys.
- //
- {
- connection_ptr c (db->connection ());
-
- c->execute ("PRAGMA foreign_keys=OFF");
-
- transaction t (c->begin ());
- schema_catalog::create_schema (*db);
- t.commit ();
-
- c->execute ("PRAGMA foreign_keys=ON");
- }
-#elif defined(DATABASE_PGSQL)
- auto_ptr<database> db (new odb::pgsql::database (argc, argv));
-#elif defined(DATABASE_ORACLE)
- auto_ptr<database> db (new odb::oracle::database (argc, argv));
-#elif defined(DATABASE_MSSQL)
- auto_ptr<database> db (new odb::mssql::database (argc, argv));
-#endif
-
- return db;
-}
-
-#endif // DATABASE_HXX