--- a/src/PreparedStatement.cpp Wed Dec 25 01:37:05 2019 +0100
+++ b/src/PreparedStatement.cpp Fri Jan 31 23:22:56 2020 +0100
@@ -25,57 +25,57 @@
namespace tr {
namespace sql {
-PreparedStatement::PreparedStatement(sqlite3_stmt* stmt) : stmt(stmt) {
+PreparedStatement::PreparedStatement(void* stmt) : stmt(stmt) {
}
PreparedStatement::~PreparedStatement() {
- sqlite3_finalize(stmt);
+ sqlite3_finalize((sqlite3_stmt*) stmt);
}
void PreparedStatement::setBoolean(int parameterIndex, relpipe::reader::boolean_t value) {
- int result = sqlite3_bind_int(stmt, parameterIndex, value);
+ int result = sqlite3_bind_int((sqlite3_stmt*) stmt, parameterIndex, value);
if (result != SQLITE_OK) throw SqlException(L"Unable to set SQLite parameter.");
}
void PreparedStatement::setInteger(int parameterIndex, relpipe::reader::integer_t value) {
- int result = sqlite3_bind_int64(stmt, parameterIndex, value);
+ int result = sqlite3_bind_int64((sqlite3_stmt*) stmt, parameterIndex, value);
if (result != SQLITE_OK) throw SqlException(L"Unable to set SQLite parameter.");
}
void PreparedStatement::setString(int parameterIndex, std::string value) {
- int result = sqlite3_bind_text(stmt, parameterIndex, value.c_str(), -1, SQLITE_TRANSIENT);
+ int result = sqlite3_bind_text((sqlite3_stmt*) stmt, parameterIndex, value.c_str(), -1, SQLITE_TRANSIENT);
if (result != SQLITE_OK) throw SqlException(L"Unable to set SQLite parameter.");
}
void PreparedStatement::setNull(int parameterIndex) {
- int result = sqlite3_bind_null(stmt, parameterIndex);
+ int result = sqlite3_bind_null((sqlite3_stmt*) stmt, parameterIndex);
if (result != SQLITE_OK) throw SqlException(L"Unable to set SQLite parameter.");
}
bool PreparedStatement::next() {
- int result = sqlite3_step(stmt);
+ int result = sqlite3_step((sqlite3_stmt*) stmt);
if (result == SQLITE_ROW) return true;
else if (result == SQLITE_DONE) return false;
else throw SqlException(L"Error while iterating over SQLite result.");
}
void PreparedStatement::reset() {
- int result = sqlite3_reset(stmt);
+ int result = sqlite3_reset((sqlite3_stmt*) stmt);
if (result != SQLITE_OK) throw SqlException(L"Unable to reset SQLite prepared statement.");
}
int PreparedStatement::getColumnCount() {
- return sqlite3_column_count(stmt);
+ return sqlite3_column_count((sqlite3_stmt*) stmt);
}
std::string PreparedStatement::getColumName(int columnIndex) {
- const char* name = sqlite3_column_name(stmt, columnIndex);
+ const char* name = sqlite3_column_name((sqlite3_stmt*) stmt, columnIndex);
if (name) return name;
else throw SqlException(L"Unable to get SQLite column name.");
}
relpipe::writer::TypeId PreparedStatement::getColumType(int columnIndex, relpipe::writer::TypeId defaultType) {
- const char* type = sqlite3_column_decltype(stmt, columnIndex);
+ const char* type = sqlite3_column_decltype((sqlite3_stmt*) stmt, columnIndex);
// TODO: sqlite3_column_decltype returns value only for columns of existing tables, not for dynamic expressions – SQLite uses dynamic types
// maybe we could write a function/module that returns result set metadata for given query (before executing it)
@@ -97,7 +97,7 @@
}
std::string PreparedStatement::getString(int columnIndex) {
- const char* value = (const char*) sqlite3_column_text(stmt, columnIndex);
+ const char* value = (const char*) sqlite3_column_text((sqlite3_stmt*) stmt, columnIndex);
return value ? value : ""; // TODO: support NULL values (when supported in relpipe format)
}