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