سلام. من میخوام محتویات دیتابیسم را نمایش بدم تو لیست ویو توسط کویری که در کلاس دیتابیسم ساخته میشه اما اصلا مدل منو تو کلاس usermanage.qml در لیست ویو نمیشناسه .
MyModel.h:
#include "mymodel.h"
MyModel::MyModel(QObject *parent)
: QSqlQueryModel(parent)
{
}
void MyModel::setQuery(const QSqlQuery query)
{
QSqlQueryModel::setQuery(query);
generateRoleNames();
}
QVariant MyModel::data(const QModelIndex &index, int role) const
{
QVariant value;
if (role<Qt::UserRole) {
value = QSqlQueryModel::data(index,role);
}
else
{
int columnIdx = role - Qt::UserRole -1;
QModelIndex modelindex = this->index(index.row(),columnIdx);
value = QSqlQueryModel ::data(modelindex,Qt::DisplayRole);
}
return value;
}
//QHash<int, QByteArray> MyModel::roleNames() const
//{
// return m_roleNames;
//}
void MyModel::generateRoleNames()
{
m_roleNames.clear();
for (int i = 0; i < record().count(); ++i)
{
m_roleNames.insert(Qt::UserRole+1,record().fieldName(i).toUtf8());
}
}
QSqlQuery DB::UserManage(int id)
{
QString str;
str.append("SELECT ui.[UI_ID],ui.[UI_PID],ui.[UI_Admin],ui.[UI_Active]," "case when(select count(*) FROM t1 ua where ua. [UI_ID]=ui.[UI_ID] and [AT_ID]=1 and [UA_Active]=1)>0 then 1 else 0 end," "case when(select count(*) FROM t2 ua where ua.[UI_ID]=ui.[UI_ID] and [AT_ID]=2 and [UA_Active]=1)>0 then 1 else 0 end," "case when(select count(*) FROM t3 ua where ua.[UI_ID]=ui.[UI_ID] and [AT_ID]=3 and [UA_Active]=1)>0 then 1 else 0 end " "FROM t4 ui ");
/*WHERE ui.[UI_Active]=1*/
if(id>-1)
{
str.append(" where ui.[UI_ID]=");/*and ui.[UI_ID]=*/
str.append(QString::number(id));
}
return q;
}
سلام. من میخوام محتویات دیتابیسم را نمایش بدم تو لیست ویو توسط کویری که در کلاس دیتابیسم ساخته میشه اما اصلا مدل منو تو کلاس usermanage.qml در لیست ویو نمیشناسه .
MyModel.h:
MyModel.cpp:
main.cpp:
usermanage.qml:
usermanage.cpp:
اینم کد دیتابیسم
من نمیدونم کجا اشتباه کردم. ممنون میشم کمکم کنید
به اشتراک گذاری این ارسال
لینک به ارسال
به اشتراک گذاری در سایت های دیگر