by magicu » Fri Jan 20, 2012 1:21 pm
This is my table struct.
-----------sql----------------
create table "User" (
id integer identity(1,1),
user_name varchar(50) not null,
password varchar(50) not null,
valid_code varchar(50) not null,
plugin_name varchar(50) not null,
is_frozen bit not null,
unbind_date datetime not null,
terminate_date datetime not null,
create_date datetime not null,
heart_date datetime null,
encrypt_key varchar(50) null,
constraint PK_USER primary key (id),
constraint AK_KEY_2_USER unique (user_name)
)
-----------User.h----------------
#pragma once
#include "export.h"
class CPPSERVER_DLL_EXPORT User
{
public:
User() : id(0) {};
virtual ~User() {};
int id;
QString user_name;
QString password;
QString valid_code;
QString plugin_name;
QDateTime unbind_date;
QDateTime terminate_date;
QDateTime create_date;
QDateTime heart_date;
QVariant encrypt_key;
};
QX_REGISTER_PRIMARY_KEY(User, int)
// This macro is necessary to register 'drug' class in QxOrm context
// param 1 : the current class to register => 'drug'
// param 2 : the base class, if no base class, use the qx trait => 'qx::trait::no_base_class_defined'
// param 3 : the class version used by serialization to provide 'ascendant compatibility'
QX_REGISTER_HPP_CPPSERVER(User, qx::trait::no_base_class_defined, 0)
-----------User.cpp----------------
#include "StdAfx.h"
#include "User.h"
#include "QxMemLeak.h"
QX_REGISTER_CPP_CPPSERVER(User)
namespace qx
{
template <> void register_class(QxClass<User> & t)
{
//t.setName("[User]");
t.id(&User::id, "id");
t.data(&User::user_name, "user_name");
t.data(&User::password, "password");
t.data(&User::valid_code, "valid_code");
t.data(&User::plugin_name, "plugin_name");
t.data(&User::unbind_date, "unbind_date");
t.data(&User::terminate_date, "terminate_date");
t.data(&User::create_date, "create_date");
t.data(&User::heart_date, "heart_date");
t.data(&User::encrypt_key, "encrypt_key");
}
}
-----------Code----------------
QSqlError daoError;
// Create a query to fetch only female author : 'author_id_2' and 'author_id_3'
qx::QxSqlQuery query("WHERE [User].[user_name] = :user_name");
query.bind(":user_name", QString::fromStdWString(userName));
qx::QxCollection<QString, boost::shared_ptr<User> > userList;
daoError = qx::dao::fetch_by_query(query, userList);
The "user","user_name","password" is the keyword of SqlServer, so we must add bracket to use it.
Last edited by
magicu on Fri Jan 20, 2012 1:37 pm, edited 2 times in total.