StupidBeauty
Read times:473Posted at:Sat Mar 30 20:04:06 2013
- no title specified

Wt3.2.3文档翻译:Wt::Dbo::Query< Result, BindStrategy > 类模板参考,Wt::Dbo::Query< Result, BindStrategy > Class Template Reference

详细描述

template<class Result, typename BindStrategy = DynamicBinding>
class Wt::Dbo::Query< Result, BindStrategy >

一个数据库查询对象

这个查询对象从数据库中获取Result 类型的结果。结果可以是任何一种正确地实现了 query_result_traits 的类型。这个库本身已经为基本类型 (参考 sql_value_traits 、数据库对象(ptr)和 boost::tuple 实现了这些需求

可使用Session::find()来进行简单的查询,而更复杂的查询 (返回任意类型的结果)就要使用 Session::query() 了。

妳可以在查询对象中的任意位置插入'?'作为参数的占位符,然后使用 bind() 来绑定实际的参数值

查询结果可使用resultValue()resultList()来获取

使用示例

typedef Wt::Dbo::ptr<Account> AccountPtr;

typedef Wt::Dbo::collection<AccountPtr> Accounts;

Wt::Dbo::Query<AccountPtr> query = session.find<Account>().where("balance > ?").bind(100000);

Accounts accounts = query.resultList();

for (Accounts::const_iterator i = accounts.begin(); i != accounts.end(); ++i)

std::cerr << "Name: " << (*i)->name << std::end;

BindStrategy指定的是如何将参数(如果有的话)绑定到妳的查询对象中

如果使用动态绑定 DynamicBinding )(默认值)的话,参数与实际结构化查询语言 (sql)语句之间的绑定是延迟发生的 ,直到查询真正执行的时候才绑定。 这会带来一些好处:妳可以使用这个查询对象中提供的辅助函数 where() orderBy() groupBy() 来构造出查询定义条件 ,并且可将它们与参数绑定功能混用 ;妳可以保留这个查询对象,并且多次运行它,每次可使用不同的参数值,或者在查询结果中遍历。 where() orderBy()groupBy()都只是便利函数而已,可用来增量式地构造查询对象 ,但是妳完全可以将整个结构化查询语句 (SQL)以单个字符串的形式指定。

当使用直接绑定 DirectBinding )时,参数会直接绑定到底层的结构化查询语句中去 。因此 ,查询条件必须在创建的时候就完整地指定。由于它是依赖于一个结构化查询语句的 ,所以它只能被执行一次 (只能执行一次 resultValue() resultList() ),然后就应当被忽略。使用这种参数绑定策略时 ,妳就不应当持有一个查询对象 (keep a query object around) (因为 ,这样几乎永远不会按照妳设想的方式工作

成员函数文档

template<class Result, typename BindStrategy = DynamicBinding>

template<typename T >

Query<Result, BindStrategy>& Wt::Dbo::Query< Result, BindStrategy >::bind

(

const T &

value

)

将一个值绑定到下一个占位符。

这个函数会将value 绑定到查询条件中的下一个占位符。

睡美人

毛新宇

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4