All pastes #487914 Raw Edit

Tomasu's MAD DB api

public cpp v1 · immutable
·published 2007-05-14 18:51 UTC
rendered paste body
#ifndef __MADDB_H__#define __MADDB_H__#include <MadException.h>/*class MadDBException : public MadException {	class InvalidHandle : public MadDBException { };	class Busy : public MadDBException { };};*/enum {	MadDB_ERROR = -1,	MadDB_OK = 1,	MadDB_ROW,	MadDB_DONE,	MadDB_BUSY,	MadDB_INTEGER = 100,	MadDB_FLOAT,	MadDB_TEXT,	MadDB_BLOB,	MadDB_NULL,};class MadDBResult {		public:		MadDBResult() { }		virtual ~MadDBResult() { }		virtual int reset() = 0;		virtual int step() = 0;		virtual const void *columnBlob(int) = 0;		virtual int columnBytes(int) = 0;		virtual double columnDouble(int) = 0;		virtual int columnInt(int) = 0;		virtual const char *columnText(int) = 0;		virtual int columnType(int) = 0;		virtual int bindBlob(int, const void*, int n) = 0;		virtual int bindDouble(int, double) = 0;		virtual int bindInt(int, int) = 0;		virtual int bindNull(int) = 0;		virtual int bindText(int, const char*) = 0;			private:		friend class MadDBConnection;};class MadDBConnection {	public:		MadDBConnection() { }		virtual ~MadDBConnection() { }		// const char *getDatabase();		// void setDatabase(const char *);		// " username		// " password		// " host		// " port		// not sure I want to do get* and set* like this, seems ugly... try and find something more elegant.		virtual bool connect() = 0;				virtual bool connect(const char *db)		{			return database(db) && connect();		}				virtual bool connect(const char *db, const char *serv)		{			return database(db) && server(serv) && connect();		}				virtual bool connect(const char *db, const char *serv, const char *u)		{			return database(db) && server(serv) && user(u) && connect();		}				virtual bool connect(const char *db, const char *serv, const char *u, const char *pw)		{			return database(db) && server(serv) && user(u) && password(pw) && connect();		}				virtual bool server(const char *s) = 0;		virtual const char *server() = 0;				virtual bool user(const char *u) = 0;		virtual const char *user() = 0;				virtual bool password(const char *pw) = 0;		virtual const char *password() = 0;				virtual bool database(const char *db) = 0;		virtual const char *database() = 0;				virtual bool disconnect() = 0;		// transactions		virtual bool begin() = 0;		virtual bool commit() = 0;		virtual bool rollback() = 0;		virtual MadDBResult *prepare(const char *) = 0;		virtual MadDBResult *preparef(const char *, ...) = 0;		virtual bool query(const char *) = 0;		virtual bool queryf(const char *, ...) = 0;		int last_insert_id();				virtual const char *error_message() = 0;	private:		friend class MadDBResult;};class MadDBHandler {	public:		virtual MadDBConnection *getDB() = 0;};#endif /* __MADDB_H__ */