/*
 * DatabaseDriver.h
 *
 *  Created on: Jan 14, 2014
 *      Author: Stephan Krynauw
 *      Email:  stephan@kses.net
 */

#ifndef DATABASEDRIVER_H_
#define DATABASEDRIVER_H_

#include "LacunaObj.h"
#include <string.h>
#include <stdio.h>
#include <vector>

using namespace std;
//Superclass which forms basis of all Database Drivers
class DatabaseDriver {
public:
	DatabaseDriver();
	virtual TableData* execSelectSQL(char* sql,  const TableData* origTableData,char** errString) = 0;
	virtual int execOtherSQL(char* sql,char** errString) = 0;
	virtual int execOtherSQL(char** sql, vector<TableData*>* dataVect,char** errString) = 0;
	virtual int execSchemaCheck(TableData* tableData,char** errString) = 0;
	bool isReady();
	virtual ~DatabaseDriver();
};
#endif /* DATABASEDRIVER_H_ */
