--- a/src/PreparedStatement.h Mon May 25 21:11:17 2020 +0200
+++ b/src/PreparedStatement.h Sun May 31 16:56:07 2020 +0200
@@ -16,10 +16,15 @@
*/
#pragma once
+#include <list>
+#include <string>
+#include <utility>
+
#include <relpipe/reader/typedefs.h>
#include <relpipe/reader/TypeId.h>
#include <relpipe/writer/TypeId.h>
#include "SqlException.h"
+#include "ResultSet.h"
namespace relpipe {
namespace tr {
@@ -27,20 +32,21 @@
class PreparedStatement {
private:
- void* stmt;
+ void* statement;
+ std::wstring_convert<std::codecvt_utf8<wchar_t>> convertor; // TODO: support also other encodings
+ std::list<relpipe::reader::boolean_t> booleanParameters;
+ std::list<relpipe::reader::integer_t> integerParameters;
+ std::list<std::pair<std::string, long>> stringParameters;
public:
PreparedStatement(void* stmt);
virtual ~PreparedStatement();
- void setBoolean(int parameterIndex, relpipe::reader::boolean_t value);
- void setInteger(int parameterIndex, relpipe::reader::integer_t value);
- void setString(int parameterIndex, std::string value);
- void setNull(int parameterIndex);
- bool next();
+ ResultSet* executeQuery();
+ long executeUpdate();
void reset();
- int getColumnCount();
- std::string getColumName(int columnIndex);
- relpipe::writer::TypeId getColumType(int columnIndex, relpipe::writer::TypeId defaultType = relpipe::writer::TypeId::STRING);
- std::string getString(int columnIndex);
+ void setBoolean(int parameterNumber, relpipe::reader::boolean_t value);
+ void setInteger(int parameterNumber, relpipe::reader::integer_t value);
+ void setString(int parameterNumber, relpipe::reader::string_t value);
+ void setNull(int parameterNumber);
};
}