Am Donnerstag, 16. Juni 2011, um 21:17:12 schrieb Jan Köster:
> Hi,
> i got a exeption but i can't explain why. When I remove
> "if(transaction.commit())" I got no problem. Have anybody a idea to solve
> the problem  ?
> 
> user.h
> #include <iostream>
> #include <Wt/Dbo/Dbo>
> #include <Wt/WDate>
> 
> #ifndef TUXAUTH_H_
> #define TUXAUTH_H_
> 
> class User {
>   private:
>     Wt::WString Nickname;
>     Wt::WString Firstname;
>     Wt::WString Lastname;
>     Wt::WString Email;
>     Wt::WDate Birthdate;
>     Wt::WString Password;
>   public:
>     Wt::Dbo::Session *Session;
> 
>     const char *Table;
> 
>     void setNickname(const char *nickname){
>       Nickname=Wt::WString(nickname);
>     }
>     void setFirstname(const char *firstname){
>       Firstname=Wt::WString(firstname);
>     }
>     void setLastname(const char *lastname){
>       Lastname=Wt::WString(lastname);
>     }
>     void setEmail(const char *email){
>       Email=Wt::WString(email);
>     }
>     void setBirthdate(int date,int month,int day){
>       Birthdate=Wt::WDate(date,month,day);
>     }
>     void setPassword(const char *password){
>       Password=Wt::WString(password);
>     }
>     bool CreateUser();
> };
> 
> #endif
> 
> user.cpp
> #include <Wt/Dbo/Dbo>
> #include <Wt/Dbo/Query>
> #include <string>
> #include <iostream>
> #include "tuxamodel.h"
> 
> #include "user.h"
> 
> bool User::CreateUser(){
>   Wt::Dbo::Transaction transaction(*Session);
>   Session->mapClass<Users>(Table);
>   Users *users = new Users();
>   users->Nickname =Nickname;
>   users->Firstname = Firstname;
>   users->Lastname = Lastname;
>   users->Email = Email;
>   users->Birthdate = Birthdate;
>   users->Password = Password;
>   Wt::Dbo::ptr<Users> userPtr=Session->add(users);
>   if(transaction.commit())
>     return true;
>   else
>     return false;
> }
> 
> test.cpp
> #include <Wt/WString>
> #include <Wt/Dbo/backend/Postgres>
> 
> #include "../src/user.h"
> 
> Wt::Dbo::backend::Postgres db_con("host=127.0.0.1 user=tuxist password=test
> dbname=tuxist");
> 
> int main(){
>    User *testuser = new User();
>    Wt::Dbo::Session session;
>    session.setConnection(db_con);
>    testuser->Session=&session;
>    testuser->Table="users";
>    testuser->setNickname("TestUser");
>    testuser->setFirstname("John");
>    testuser->setLastname("Dohn");
>    testuser->setEmail("[email protected]");
>    testuser->setBirthdate(1909,05,13);
>    testuser->setPassword("Testpw");
>    testuser->CreateUser();
>    return 0;
> }
> 
> ---------------------------------------------------------------------------
> --- EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
> _______________________________________________
> witty-interest mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/witty-interest

i forgot the

tuxamodel.h

#include <Wt/Dbo/Dbo>
#include <Wt/Dbo/Query> 
#include <Wt/Dbo/WtSqlTraits>
#include <Wt/Dbo/Types>

#ifndef TUXAMODEL_H_
#define TUXAMODEL_H_

class Users;
class Groups;
class User_Groups;
class Modules;
class Group_Access_Controll;

namespace Wt { 
  namespace Dbo {
    template<>
    struct Wt::Dbo::dbo_traits<Users> : public Wt::Dbo::dbo_default_traits {
      static const char *versionField() {
        return 0;
      }
    };
    template<>
    struct Wt::Dbo::dbo_traits<Groups> : public Wt::Dbo::dbo_default_traits {
      static const char *versionField() {
        return 0;
      }
    };
    template<>
    struct Wt::Dbo::dbo_traits<User_Groups> : public 
Wt::Dbo::dbo_default_traits {
      static const char *versionField() {
        return 0;
      }
    };
    template<>
    struct Wt::Dbo::dbo_traits<Modules> : public Wt::Dbo::dbo_default_traits {
      static const char *versionField() {
        return 0;
      }
    };
    template<>
    struct Wt::Dbo::dbo_traits<Group_Access_Controll> : public 
Wt::Dbo::dbo_default_traits {
      static const char *versionField() {
        return 0;
      }
    };
  }  
}

class Users : public Wt::Dbo::Dbo<Users>
{
  public:  
    typedef Wt::Dbo::collection<Wt::Dbo::ptr<Users> > UserCollection;
    
    int User_id;
    Wt::WString Nickname;
    Wt::WString Firstname;
    Wt::WString Lastname;
    Wt::WString Email;
    Wt::WDate Birthdate;
    Wt::WString Password;
    
    template<class Action>
    void persist(Action& a)
    {
      Wt::Dbo::field(a, User_id, "user_id");
      Wt::Dbo::field(a, Nickname, "nickname");
      Wt::Dbo::field(a, Firstname, "firstname");
      Wt::Dbo::field(a, Lastname, "lastname");
      Wt::Dbo::field(a, Email, "email");
      Wt::Dbo::field(a, Birthdate, "birthdate");
      Wt::Dbo::field(a, Password, "password");
    }
};

class Groups : public Wt::Dbo::Dbo<Groups>
{
  public:
    Wt::Dbo::Session *Session;    
    typedef Wt::Dbo::collection<Wt::Dbo::ptr<Groups> > Group;
    Wt::Dbo::ptr<Groups> entry;
    
    int group_id;
    Wt::WString name;
    
    template<class Action>
    void persist(Action& a)
    {
      Wt::Dbo::field(a, group_id, "group_id");
      Wt::Dbo::field(a, name, "name");
    }
};

class User_Groups : public Wt::Dbo::Dbo<User_Groups>
{
  public:
    Wt::Dbo::Session *Session;    
    typedef Wt::Dbo::collection<Wt::Dbo::ptr<User_Groups> > User_Group;
    Wt::Dbo::ptr<Groups> entry;
    
    int ug_id,group_id,user_id;
    bool primary_group;
    Wt::WString name;
    
    template<class Action>
    void persist(Action& a)
    {
      Wt::Dbo::field(a,ug_id, "ug_id");
      Wt::Dbo::field(a,group_id, "group_id");
      Wt::Dbo::field(a,user_id,"user_id");
      Wt::Dbo::field(a,primary_group,"primary_group");
    }
};


class Modules : public Wt::Dbo::Dbo<Modules>
{
  public:
    Wt::Dbo::Session *Session;    
    typedef Wt::Dbo::collection<Wt::Dbo::ptr<Modules> > Modul;
    Wt::Dbo::ptr<Modules> entry;
    
    int module_id;
    Wt::WString name;
    
    template<class Action>
    void persist(Action& a)
    {
      Wt::Dbo::field(a, module_id, "module_id");
      Wt::Dbo::field(a, name, "name");
    }
};

class Group_Access_Controll : public Wt::Dbo::Dbo<Group_Access_Controll>
{
  public:
    Wt::Dbo::Session *Session;    
    typedef Wt::Dbo::collection<Wt::Dbo::ptr<Modules> > Modul;
    Wt::Dbo::ptr<Modules> entry;
    
    int gac_id,group_id,module_id;
    bool read,write,execute;
    
    template<class Action>
    void persist(Action& a)
    {
      Wt::Dbo::field(a, gac_id, "gac_id");
      Wt::Dbo::field(a, group_id, "group_id");
      Wt::Dbo::field(a, module_id, "module_id");
      Wt::Dbo::field(a, read, "read");
      Wt::Dbo::field(a, write, "write");
      Wt::Dbo::field(a, execute, "execute");
    }
};

#endif 

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
witty-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/witty-interest

Reply via email to