603206f7

Комбинирование


Вы можете также объединять использование установки параметров во время выполнения и использование объекта def, просто применяя расширенную форму Query::store (можно также use или execute) без необходимых определенных параметров. Например: query.def["field1"] = "item"; query.def["field2"] = "price"; Result res1 = query.store("Hamburger Buns", "item"); Result res2 = query.store(1.25, "price"); Сохранит такой запрос: select (item, price) from stock where item = "Hamburger Buns" для res1 и select (item, price) from stock where price = 1.25 для res2.

Поскольку расширенная форма Query::store может работать только с начала списка (по номерам, но не по расположению параметров), более логично было бы сделать так: select (%0:field1, %1:field2) from stock where %2: wheref = %q3:what Но такой подход в этом случае не сработает. Более сложный вариант select (%2:field1, %3:field2) from stock where %1: wheref = %q0:what все же был необходим, чтобы Вы могли определять wheref и what.

Следует, однако, помнить, что Query::store(const char* q) также определена для выполнения запроса q. По этой причине, когда Вы используете Query::store (use или execute), только с одним элементом, и этот элемент const char*, Вы должны явно преобразовать это в SQLString. Например: Result res = query.store(SQLString("Hamburger Buns")).



Содержание раздела