src/SqlHandler.h
branchv_0
changeset 1 eb7134dfdcc5
parent 0 c205f5d06418
child 3 0b932e05aa9f
equal deleted inserted replaced
0:c205f5d06418 1:eb7134dfdcc5
    21 #include <string>
    21 #include <string>
    22 #include <vector>
    22 #include <vector>
    23 #include <locale>
    23 #include <locale>
    24 #include <codecvt>
    24 #include <codecvt>
    25 
    25 
       
    26 #include <sqlite3.h>
       
    27 
    26 #include <relpipe/reader/typedefs.h>
    28 #include <relpipe/reader/typedefs.h>
    27 #include <relpipe/reader/TypeId.h>
    29 #include <relpipe/reader/TypeId.h>
    28 #include <relpipe/reader/handlers/RelationalReaderStringHandler.h>
    30 #include <relpipe/reader/handlers/RelationalReaderStringHandler.h>
    29 #include <relpipe/reader/handlers/AttributeMetadata.h>
    31 #include <relpipe/reader/handlers/AttributeMetadata.h>
    30 
    32 
    45 class SqlHandler : public RelationalReaderStringHandler {
    47 class SqlHandler : public RelationalReaderStringHandler {
    46 private:
    48 private:
    47 	Configuration configuration;
    49 	Configuration configuration;
    48 	writer::RelationalWriter* relationalWriter;
    50 	writer::RelationalWriter* relationalWriter;
    49 	std::wstring_convert<codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings
    51 	std::wstring_convert<codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings
       
    52 	sqlite3* db;
       
    53 	sqlite3_stmt* currentStatement;
    50 
    54 
    51 public:
    55 public:
    52 
    56 
    53 	SqlHandler(writer::RelationalWriter* relationalWriter, Configuration& configuration) : relationalWriter(relationalWriter), configuration(configuration) {
    57 	SqlHandler(writer::RelationalWriter* relationalWriter, Configuration& configuration) : relationalWriter(relationalWriter), configuration(configuration) {
       
    58 		int error = sqlite3_open(":memory:", &db);
       
    59 		if (error) {
       
    60 			sqlite3_close(db);
       
    61 			throw SqlException(L"Unable to open sqlite database.");
       
    62 		}
       
    63 	}
       
    64 
       
    65 	virtual ~SqlHandler() {
       
    66 		sqlite3_close(db);
    54 	}
    67 	}
    55 
    68 
    56 	void startRelation(string_t name, vector<AttributeMetadata> attributes) override {
    69 	void startRelation(string_t name, vector<AttributeMetadata> attributes) override {
    57 
    70 
    58 	}
    71 	}