c++ & postgresql

finke

finke

Eroberer
HI, ich melde mich heute bei euch aus folgendem Problem.
Ich möchte mithilfe von c++ auf PostgreSQL zugreifen. Ich weis das es dafür die libpqxx gibt, aber auch das es über den ODBC Treiber möglich sein soll. Ich wollte fragen, ob mir wer ne Empfehlung machen kann, über welschen weg das günstiger unter Linux zu lößen ist.

Ich hab angefangen, mit der libpqxx herumzuexperimentierende, aber bei Benutzung von ihr bekomme ich dann immer beim linken mit dem g++ ne längere liste an Fehlermeldungen.
zB wir der coade, den ich mir in nem HOWTO gefunden hab nicht gelinkt:

#include <iostream>
#include <vector>

#include <pqxx/connection>
#include <pqxx/tablewriter>
#include <pqxx/transaction>

using namespace std;
using namespace pqxx;

int main(int argc, char **argv)
{
try
{
connection C("dbname=languages");
string TableName("words");
work T(C, "mytransaction");
//Alternative: transaction<> T(C, "mytransaction");
T.exec(("CREATE TABLE " +
TableName +
"(german VARCHAR, english VARCHAR, french VARCHAR, spanish VARCHAR)").c_str());
{
tablewriter W(T, TableName);
const char *const CData[][4] =
{
{"eins", "one", "un", "uno" },
{"zwei", "two", "deux", "dos"},
{0, 0, 0, 0}
};
cout << "Writing data to " << TableName << endl;
for (int i=0; CData[0]; ++i) {
W.insert(&CData[0], &CData[4]);
}
vector<string> vec;
vec.push_back("drei");
vec.push_back("three");
vec.push_back("trois");
vec.push_back("tres");
W.insert(vec);
vec[0] = "Adler";
vec[1] = "eagle";
vec[2] = "aigle";
vec[3] = "aguila";
W << vec;
}
T.commit();
}
catch (const sql_error &e)
{
cerr << "SQL Error in Query:: " << e.what() << "\n" << e.query() << endl;
return 1;
}
catch (const exception &e)
{
cerr << "Exception: " << e.what() << endl;
return 2;
}
return 0;
}


es kommen immer folgende Fehlermeldung:
http://meineprojekte.me.funpic.de/listening1.txt
 
Zuletzt bearbeitet:
Dein Build Log schrieb:
Listing1.cpp:(.text+0x378): undefined reference to `pqxx::<irgendeine Memberfunktion> ... usw

Ist ein Linkerproblem. Du mußt wohl noch den Includepfad Deiner Postgresql-C++-Librarys angeben bei den LD-Flags
Code:
finke@finke-linux:~/Desktop/test> g++ Listing1.o  -o Listing -Wall [b]-lpqxx[/b]
... könnte eines der Probleme lösen.

MfG
 

Ähnliche Themen

String auf Konsole ausgeben

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

[C] Speicherzugriffsfehler mit malloc

NagiosGrapher 1.7.1 funktioniert nicht

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zurück
Oben