dboo::odb::free_all
free_all();
free_all()
Destroys all objects known to the dboo API. To use this safely, no objects should be destroyed by destructor.
Parameters
(none)
Return value
(none)
Example
#include <dboo/rfx.h>
#include <dboo/odb.h>
class A {
public:
inline static dboo::cls<A> cls{"A"};
static void dboo_class_init(dboo::cls<A>& c) {
c.member(&A::var1, "var1");
}
private:
int var1;
};
class B {
public:
B() = default;
B(A* a) : a{a} {}
virtual ~B() = default;
inline static dboo::cls<B> cls{"B"};
static void dboo_class_init(dboo::cls<B>& c) {
c.member(&A::a, "a");
}
private:
A* a;
};
int main() {
using dboo::in;
using dboo::gt;
using dboo::select;
dboo::odb db;
db.connect("localhost", 8823,
"my_database",
"usr132",
"password");
vector<B*> results_b;
vector<A*> results_a;
db.select<B>(results_b); // Selects all B
db.select<A>(results_a, gt("var1", 10)); // Selects all A with var1 greater than 1
db.select<B>(results_b, in("a", select<A>(gt("var1", 10)))); // Selects all B pointing to an A
// with var1 greater than 10
db.select<B>(results_b, in("a", select<A>(gt("var1", 10)))); // Selects all B pointing to an A
// with var1 greater than 10
vector<unique_ptr<B>> results_b;
db.select<B>(results_b, in("a", select<A>(gt("var1", 10)))); // Selects all B pointing to an A
// with var1 greater than 10
db.free_all();
return 0;
}
const dboo = require('dboo');
const config = require('config');
dboo.argv(process.argv);
dbConfig = config.get('dbConfig');
class UserId {
userId = "";
screenName = "";
constructor(userid = "", screenName = "") {
this.userId = userid;
this.screenName = screenName;
}
};
dboo.class(UserId,
[{"userId": dboo.string},
{"screenName": dboo.string},
]
);
class User {
userId = null;
address = "";
constructor(userid = null, address = "") {
this.userId = userid;
this.screenName = screenName;
}
};
dboo.class(User,
[{"userId": UserId}, // referencing a UserId object
{"address": dboo.string},
]
);
dboo.init(); // Class declarations must come before init!
const db = new dboo.odb();
db.connect(dbConfig.host, Number(dbConfig.port),
dbConfig.dbName, dbConfig.webUserName,
dbConfig.webUserPwd);
let results_b = [];
let results_a = [];
db.query(results_b, "select<B>()"); // Selects all B
db.query(results_a, "select<A>(gt(var1, 10))"); // Selects all A with var1 greater than 1
db.query(results_b, "select<B>(in(a, select<A>(gt(var1, 10))))"); // Selects all B pointing to an A
// with var1 greater than 10
db.free_all();