Skip to content

Commit 7b0b437

Browse files
committed
Add dbGetBoundValues
1 parent 27609cd commit 7b0b437

3 files changed

Lines changed: 20 additions & 2 deletions

File tree

docs/api/build-queries.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ Example: ``_query = dbPrepareQuery "SELECT ? FROM ? WHERE ?=?"``
8888

8989
.. _dbCopyQuery:
9090

91+
92+
dbGetBoundValues query
93+
~~~~~~~~~~~~~~~~~~~~~~
94+
95+
Returns array of all values currently bound to this query
96+
97+
returns ``<ARRAY>``
98+
99+
91100
dbCopyQuery query
92101
-----------------
93102
query: ``<QUERY>`` - the query object returned by dbPrepareQuery

src/query.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,12 @@ game_value Query::cmd_bindNamedValueArray(game_state&, game_value_parameter left
136136
return {};
137137
}
138138

139+
game_value Query::cmd_getBoundValues(game_state&, game_value_parameter left) {
140+
auto query = left.get_as<GameDataDBQuery>();
141+
142+
return query->boundValues;
143+
}
144+
139145
void Query::initCommands() {
140146

141147
auto dbType = host::register_sqf_type("DBQUERRY"sv, "databaseQuery"sv, "TODO"sv, "databaseQuery"sv, createGameDataDBQuery);
@@ -154,6 +160,7 @@ void Query::initCommands() {
154160
//#TODO only accept string,scalar,bool
155161
handle_cmd_bindValue = client::host::register_sqf_command("dbBindValue", "TODO", Query::cmd_bindValue, game_data_type::NOTHING, dbType.first, game_data_type::ANY);
156162
handle_cmd_bindValueArray = client::host::register_sqf_command("dbBindValueArray", "TODO", Query::cmd_bindValueArray, game_data_type::NOTHING, dbType.first, game_data_type::ARRAY);
163+
handle_cmd_getBoundValues = client::host::register_sqf_command("dbGetBoundValues", "TODO", Query::cmd_getBoundValues, game_data_type::ARRAY, dbType.first);
157164

158165
//handle_cmd_bindNamedValue = client::host::register_sqf_command("db_bindNamedValue", "TODO", Query::cmd_bindNamedValue, game_data_type::NOTHING, dbType.first, game_data_type::ANY);
159166
//handle_cmd_bindNamedValueArray = client::host::register_sqf_command("db_bindNamedValueArray", "TODO", Query::cmd_bindNamedValueArray, game_data_type::NOTHING, dbType.first, game_data_type::ARRAY);

src/query.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ class Query {
1818
static game_value cmd_bindValue(game_state&, game_value_parameter left, game_value_parameter right);
1919
static game_value cmd_bindValueArray(game_state&, game_value_parameter left, game_value_parameter right);
2020
static game_value cmd_bindNamedValue(game_state&, game_value_parameter left, game_value_parameter right);
21-
static game_value cmd_bindNamedValueArray(game_state&, game_value_parameter left, game_value_parameter right);
21+
static game_value cmd_bindNamedValueArray(game_state&, game_value_parameter left, game_value_parameter right);
22+
static game_value cmd_getBoundValues(game_state&, game_value_parameter left);
2223

2324

2425

@@ -35,7 +36,8 @@ class Query {
3536
static inline types::registered_sqf_function handle_cmd_bindValue;
3637
static inline types::registered_sqf_function handle_cmd_bindValueArray;
3738
static inline types::registered_sqf_function handle_cmd_bindNamedValue;
38-
static inline types::registered_sqf_function handle_cmd_bindNamedValueArray;
39+
static inline types::registered_sqf_function handle_cmd_bindNamedValueArray;
40+
static inline types::registered_sqf_function handle_cmd_getBoundValues;
3941
};
4042

4143
class GameDataDBQuery : public game_data {

0 commit comments

Comments
 (0)