本文整理汇总了C++中Expression::generate_sql方法的典型用法代码示例。如果您正苦于以下问题:C++ Expression::generate_sql方法的具体用法?C++ Expression::generate_sql怎么用?C++ Expression::generate_sql使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Expression
的用法示例。
在下文中一共展示了Expression::generate_sql方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testCollectParams
void testCollectParams()
{
Expression expr = Expression(_T("ID")) == 1 &&
Expression(_T("A")) != String(_T("a"));
SqlGeneratorOptions options1(NO_QUOTES, true, true);
SqlGeneratorContext ctx1;
String sql = expr.generate_sql(options1, &ctx1);
CPPUNIT_ASSERT_EQUAL(string("(ID = ?) AND (A <> ?)"),
NARROW(sql));
SqlGeneratorOptions options2(NO_QUOTES, true, true, true);
SqlGeneratorContext ctx2;
sql = expr.generate_sql(options2, &ctx2);
CPPUNIT_ASSERT_EQUAL(string("(ID = :1) AND (A <> :2)"),
NARROW(sql));
CPPUNIT_ASSERT_EQUAL(string("(ID = 1) AND (A <> 'a')"),
NARROW(expr.get_sql()));
CPPUNIT_ASSERT_EQUAL((size_t)2, ctx1.params_.size());
CPPUNIT_ASSERT_EQUAL(1, ctx1.params_[0].as_integer());
CPPUNIT_ASSERT_EQUAL(string("a"), NARROW(ctx1.params_[1].as_string()));
CPPUNIT_ASSERT_EQUAL((size_t)2, ctx2.params_.size());
CPPUNIT_ASSERT_EQUAL(1, ctx2.params_[0].as_integer());
CPPUNIT_ASSERT_EQUAL(string("a"), NARROW(ctx2.params_[1].as_string()));
}
示例2: options
SqlResultSet
EngineBase::select_iter(const Expression &select_expr)
{
SqlGeneratorOptions options(NO_QUOTES,
get_dialect()->has_for_update(),
true,
get_conn()->get_driver()->numbered_params(),
(Yb::SqlPagerModel)get_dialect()->pager_model());
SqlGeneratorContext ctx;
String sql = select_expr.generate_sql(options, &ctx);
auto_ptr<SqlCursor> cursor = get_conn()->new_cursor();
cursor->prepare(sql);
SqlResultSet rs = cursor->exec(ctx.params_);
rs.own(cursor);
return rs;
}