Changeset View
Changeset View
Standalone View
Standalone View
src/drivers/postgresql/PostgresqlPreparedStatement.cpp
Show All 32 Lines | |||||
33 | } | 33 | } | ||
34 | 34 | | |||
35 | bool PostgresqlPreparedStatement::prepare(const KDbEscapedString& sql) | 35 | bool PostgresqlPreparedStatement::prepare(const KDbEscapedString& sql) | ||
36 | { | 36 | { | ||
37 | Q_UNUSED(sql); | 37 | Q_UNUSED(sql); | ||
38 | return true; | 38 | return true; | ||
39 | } | 39 | } | ||
40 | 40 | | |||
41 | KDbSqlResult* PostgresqlPreparedStatement::execute( | 41 | QSharedPointer<KDbSqlResult> PostgresqlPreparedStatement::execute( | ||
42 | KDbPreparedStatement::Type type, | 42 | KDbPreparedStatement::Type type, const KDbField::List &selectFieldList, | ||
43 | const KDbField::List& selectFieldList, | 43 | KDbFieldList *insertFieldList, const KDbPreparedStatementParameters ¶meters) | ||
44 | KDbFieldList* insertFieldList, | | |||
45 | const KDbPreparedStatementParameters& parameters, bool *resultOwned) | | |||
46 | { | 44 | { | ||
47 | Q_UNUSED(selectFieldList); | 45 | Q_UNUSED(selectFieldList); | ||
46 | QSharedPointer<KDbSqlResult> result; | ||||
48 | if (type == KDbPreparedStatement::InsertStatement) { | 47 | if (type == KDbPreparedStatement::InsertStatement) { | ||
49 | const int missingValues = insertFieldList->fieldCount() - parameters.count(); | 48 | const int missingValues = insertFieldList->fieldCount() - parameters.count(); | ||
50 | KDbPreparedStatementParameters myParameters(parameters); | 49 | KDbPreparedStatementParameters myParameters(parameters); | ||
51 | if (missingValues > 0) { | 50 | if (missingValues > 0) { | ||
52 | //! @todo can be more efficient | 51 | //! @todo can be more efficient | ||
53 | for (int i = 0; i < missingValues; i++) { | 52 | for (int i = 0; i < missingValues; i++) { | ||
54 | myParameters.append(QVariant()); | 53 | myParameters.append(QVariant()); | ||
55 | } | 54 | } | ||
56 | } | 55 | } | ||
57 | KDbSqlResult* result; | 56 | result = connection->insertRecord(insertFieldList, myParameters); | ||
58 | if (connection->insertRecord(insertFieldList, myParameters, &result)) { | | |||
59 | *resultOwned = false; | | |||
60 | return result; | | |||
61 | } | | |||
62 | return nullptr; | | |||
63 | } | 57 | } | ||
64 | //! @todo support select | 58 | //! @todo support select | ||
65 | return nullptr; | 59 | return result; | ||
66 | } | 60 | } |