1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
<%args>
int number;
bool beautify;
</%args>
<%pre>
#include <@PROJECT@/config.h>
#include <cxxtools/json.h>
#include <tntdb/connect.h>
#include <tntdb/statement.h>
#include <tntdb/value.h>
namespace
{
struct Result
{
int number;
std::string name;
};
void operator<<= (cxxtools::SerializationInfo& si, const Result& result)
{
si.addMember("number") <<= result.number;
si.addMember("name") <<= result.name;
}
}
</%pre>
<%cpp>
tntdb::Connection conn = tntdb::connectCached(@PROJECT@::Config::it().dburl());
tntdb::Statement sel = conn.prepare(R"SQL(
select name
from test
where number = :number
order by number
)SQL");
Result result;
result.number = number;
sel.set("number", number)
.selectValue()
.get(result.name);
reply.setContentType("application/json");
reply.out() << cxxtools::Json(result).beautify(beautify);
</%cpp>
|