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

Reply via email to