[odb-users] query::Age --> Incomplete type is not alowed

Tarik BENZ tenchu.tarik at hotmail.fr
Fri Apr 26 03:23:31 EDT 2013


I have some troubles to compile my code because I have this error "Incomplete type is not alowed"
My code is :
 #include <string>
#include <memory>   // std::unique_ptr
#include <iostream>
#include <odb/database.hxx>

#include "Database.hxx" // create_database
#include "User.hxx" // create_database
#include <odb/session.hxx>
#include <odb/transaction.hxx>
#include <odb/mssql/database.hxx>


        typedef odb::query<User> query;
        typedef odb::result<User> result;

         std::unique_ptr<odb::database> db (create_database ());
        transaction t (db->begin ());
        result r (db->query<User> (query::userName == user && query::userPass == password)); // ERROR :  query::userName --> Incomplete type is not alowed
        for (result::iterator i (r.begin ()); i != r.end (); ++i)
            cout << "Hello, " << i->first () << endl;
        t.commit ();

---------------User Mapping----------
#include <string>
#include <odb/core.hxx>
#include <memory>
#include "Role.hxx"

typedef Role* Role_ptr;

#pragma db object
class User
    friend class odb::access;

    User(const int userId, 
        const std::string& userName,
        const std::string& userPass,
        Role_ptr ref_Role)
        : userName_(userName), userId(userId), ref_Role(ref_Role), userPass_(userPass){}

    const int getUserId() const
        return this->userId;

    void setUserId(const int Statusode)
        this->userId = userId;

    const std::string getUserName() const
        return this->userName_;

    void setUserName(const std::string& userName)
        this->userName_ = userName;

    const std::shared_ptr<Role> getRefRole() const
        return this->ref_Role;

    void setRefRole(std::shared_ptr<Role> ref_Role)
        this->ref_Role = ref_Role;

    const std::string getUserPass() const
        return this->userPass_;

    void setUserPass(const std::string& userPass)
        this->userPass_ = userPass;

    #pragma db id
    #pragma db get(getUserId) set(setUserId)
    int userId;

    #pragma db get(getUserName) set(setUserName)
    std::string userName_;

    #pragma db get(getUserPass) set(setUserPass)
    std::string userPass_;

    #pragma db get(getRefRole) set(setRefRole)
    std::shared_ptr<Role> ref_Role;

-----------------------Can some help me to fix this please? ----------------


More information about the odb-users mailing list