gpt4 book ai didi

c++ - Wt - QueryModel 和 WTableView 的示例?

转载 作者:太空狗 更新时间:2023-10-29 23:02:31 26 4
gpt4 key购买 nike

我从 Wt 开始,在学习了 ORM 模块的基础知识之后,我试图显示一个表 (TableTags) 的结果,但没有成功。

我已将表 TableTag 定义为:

class TableTag
{
public:
static const unsigned int tableVersion = 1;
std::string name;
//Wt::Dbo::collection< Wt::Dbo::ptr<TablePost> > tablePosts;

TableTag();
~TableTag();
static void initTableRecords(Wt::Dbo::Session &_session);

template<class Action>
void persist(Action &_action)
{
Wt::Dbo::field(_action, name, "Name");

//Wt::Dbo::hasMany(_action, tablePosts, Wt::Dbo::ManyToMany, "Post");
}
};
typedef Wt::Dbo::collection< Wt::Dbo::ptr<TableTag> > TableTags;

我开始使用类似于以下的代码:

DDBBApp::setDDBBBackendAndSession(ddbbBackend_,ddbbSession_);
ddbbSession_.mapClass<TableTag>("TableTag");
{
Wt::Dbo::Transaction transaction(ddbbSession_);

Wt::Dbo::QueryModel<TableTag> * qmTags = new Wt::Dbo::QueryModel<TableTag>();
TableTags tags = ddbbSession_.find<TableTag>();
Wt::Dbo::Query<TableTag> qTag(ddbbSession_.find<TableTag>());
qmTags->setQuery(qTag);


WTableView * wtv = new WTableView();
wtv->setModel(qmTags);
}

但编译器报错(VS2013,翻译成英文):

DDBBApp.cpp(54): error C2664: 'Wt::Dbo::Query::Query(Wt::Dbo::Session &,const std::string &,const std::string &)' : argument 1 cannot be converted from 'Wt::Dbo::Query' to 'const Wt::Dbo::Query &'

我已经尝试了几种构造函数、变量类型等...我知道要点接近于此:

Wt::Dbo::QueryModel<TableTag> * qmTags = new Wt::Dbo::QueryModel<TableTag>();

Wt::Dbo::Query< Wt::Dbo::ptr<TableTag> > q1 = ddbbSession_.find<TableTag>();
qmTags->setQuery(qTag); //Error here

Wt::Dbo::Query<TableTag> q2 = ddbbSession_.find<TableTag>(); //Error here
qmTags->setQuery(q2);

但我无法处理这个问题,根据我搜索过的文档和片段,我认为正确的方法是第二种。

有人可以发布一个简单的示例,以便我阐明 Wt​​ 如何处理它吗?

Wy the wall,我在 Win 8.1 + VS 2013 下使用 Wt 3.3.3。

最佳答案

我终于想通了^_^感谢:Not getting headers on WTableView with QueryModel

右边的代码如下:

Wt::Dbo::QueryModel< Wt::Dbo::ptr<TableTag> > * qmTags1 = new Wt::Dbo::QueryModel< Wt::Dbo::ptr<TableTag> >();
qmTags1->setQuery(ddbbSession_.find<TableTag>());
qmTags1->addAllFieldsAsColumns();

WTableView * wtv1 = new WTableView();
wtv1->setModel(qmTags1);
this->root()->addWidget(wtv1);

注意:不要忘记使用QueryModel->setQuery()!!

关于c++ - Wt - QueryModel 和 WTableView 的示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28193296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com