Dies ist das grundlegendste libpq-Beispiel, an das ich denken könnte, um mein Problem zu veranschaulichen. Das Ziel besteht darin, nur die gesperrte Zeichenfolge auszudrucken.PQescapeLiteral nicht definiert?
#include <iostream>
#include <libpq-fe.h>
#include <string.h>
using namespace std;
int main(){
PGconn *db;
char connstring[] = "dbname=TheInternet";
db = PQconnectdb(connstring);
char url[] = "http://www.goo'gle.com/";
cout<<PQescapeLiteral(db, (const char *)url, (size_t) strlen(url))<<"\n";
}
Wenn ich kompilieren mit:
g++ PQescapeLiteral_test.cpp -lpq
oder sogar mit:
g++ PQescapeLiteral.cpp -I/usr/include/pgsql:/usr/include/pgsql/server:/usr/include/pgsql/server/libpq -lpq
ich den Fehler:
PQescapeLiteral.cpp: In function ‘int main()’:
PQescapeLiteral.cpp:12: error: ‘PQescapeLiteral’ was not declared in this scope
I PQescapeLiteral im Handbuch für pgsql gefunden 9.0 in Abschnitt 31.3.4 .: Entweichende Strings f oder Einschluss in SQL-Befehle. Ich habe die neueste Version von libpq und libpq-devel von yum, also bin ich ziemlich sicher, dass es definiert werden soll.
Wenn mir jemand in die richtige Richtung zeigen kann, würde ich es begrüßen.
libpqxx i686 1: 3.0.2-4.fc13 fedora libpqxx-devel i686 1: 3.0.2-4.fc13 fedora ... postgres 8.4.5 ... das könnte es sein! Ich werde versuchen, das Neueste zu installieren :) – KeatsKelleher