pqxx: program przestaje działać (crash), gdy próbuję dodać/usunąć tabelę (PostgreSQL)

0

Dzień dobry.

Mam taką klasę:

class Baza
{
	private:
		string str;
		
	public:
		Baza();
		~Baza();
		
		string zwrocHaslo(string uzytkownik);
		pqxx::result wykonajZapytanie(string zapytanie);
};

pole str przechowuje informacje, potrzebne do połączenia z serwerem bazy danych.

Baza::Baza() : str("user=test123 dbname=bazaTestowa password=123456")
{
}

Baza::~Baza()
{
}

string Baza::zwrocHaslo(string uzytkownik)
{
	pqxx::connection c(str);
	pqxx::work w(c);
	
	stringstream ss;
	ss << "SELECT pass FROM logins where login='" << uzytkownik << "'";
	
	pqxx::result r = w.exec(ss.str());
	w.commit();
	
	c.disconnect();
	
	if (r.size() == 0)
		fl_alert("brak użytkownika w bazie");
	
	else
		return r[0][0].c_str();
	
	return "";
}

pqxx::result Baza::wykonajZapytanie(string zapytanie)
{
	pqxx::connection c(str);
	pqxx::work w(c);
	
	try
	{
		pqxx::result r = w.exec(zapytanie);
		w.commit();
		
		c.disconnect();
	}
	
	catch (exception & e)
	{
		fl_alert(e.what());
		
		exit(0);
	}
}

Funkcje działają, gdy pobieram informacje z tabeli:

string hasloMD5 = baza.zwrocHaslo(login.value());

Ale, gdy próbuję stworzyć, a wcześniej usunąć tabelę, program przestaje działać (crash).

void stworzTabeleBazyDanych()
{
	baza.wykonajZapytanie("DROP TABLE IF EXISTS daneOsobiste;");
	baza.wykonajZapytanie("CREATE TABLE daneOsobiste(id SERIAL, imie text, nazwisko text, telefon text, nip text, numerKonta text, nazwaBanku text, pesel text);");
}

Co może być tego powodem?
Dzięki

0

Głupi błąd w kodzie.

Zapomniałem dodać return r;, w metodzie wykonajZapytanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1