// PostgreSQL Client Library Header
`` `
2. Upprätta anslutning:
Detta är kärnan i processen. Du behöver en anslutningssträng som anger databasparametrarna.
`` `c
Pgconn *conn;
const char *conninfo;
connInfo ="dbname =myDatabase User =myUser Password =myPassword Host =localHost port =5432"; // Byt ut med dina uppgifter
conn =pqConnectDB (conninfo);
if (pqstatus (conn)! =connection_ok) {
fprintf (stderr, "Anslutning till databasen misslyckades:%s", pqerrormessage (conn));
Pqfinish (conn);
utgång (1);
}
`` `
* `dbname =mydatabase`: Namnet på din PostgreSQL -databas.
* `user =myuser`: Ditt PostgreSQL -användarnamn.
* `lösenord =myPassword`: Ditt PostgreSQL -lösenord.
* `värd =localhost`: Värdnamnet eller IP -adressen för PostgreSQL -servern. Ändra om din databas inte är lokal.
* `port =5432`: Portnumret PostgreSQL lyssnar på (standard är 5432).
3. Kör frågor:
När du har anslutit kan du köra SQL -frågor. Det här exemplet visar en enkel `Select` -fråga:
`` `c
PGRESULT *res;
res =pqexec (conn, "välj version ();");
if (pqresultStatus (res)! =pgres_tuples_ok) {
fprintf (stderr, "Select Failed:%s", pqerrormessage (conn));
Pqclear (res);
Pqfinish (conn);
utgång (1);
}
printf ("PostgreSQL -version:%s \ n", pqgetValue (res, 0, 0));
Pqclear (res); // frigör resultatet set minne
`` `
* `pqexec (conn," Select version (); ")`: Kör SQL -frågan.
* `pqresultStatus (res)`: Kontrollerar statusen för frågeställningen. `PGRES_TUPLES_OK` indikerar framgång.
* `pqgetValue (res, 0, 0)`: Hämtar värdet från resultatuppsättningen. `(0, 0)` anger den första raden (0) och den första kolumnen (0).
4. Hantera andra frågetyper (infoga, uppdatera, ta bort):
För `Insert`,` Update` och `Delete` Queries, kommer du vanligtvis att kontrollera 'pqcmdtuples' för att se hur många rader som påverkades.
`` `c
res =pqexec (conn, "infoga i mytable (kolumn1, kolumn2) värden ('värde1', 'värde2');");
if (pqresultStatus (res) ==pgres_command_ok) {
printf ("infoga framgångsrik. %LD -rader påverkade \ n", pqcmdtuples (res));
} annat {
fprintf (stderr, "Insert misslyckades:%s", pqerrormessage (conn));
}
Pqclear (res);
`` `
5. Stäng anslutningen:
Stäng alltid anslutningen när du är klar.
`` `c
Pqfinish (conn);
`` `
Komplett exempel:
`` `c
#include
#include
#include
#omfatta
int main () {
Pgconn *conn;
const char *conninfo;
PGRESULT *res;
connInfo ="dbname =myDatabase User =myUser Password =myPassword Host =localHost port =5432"; // Byt ut med dina uppgifter
conn =pqConnectDB (conninfo);
if (pqstatus (conn)! =connection_ok) {
fprintf (stderr, "Anslutning till databasen misslyckades:%s", pqerrormessage (conn));
utgång (1);
}
res =pqexec (conn, "välj version ();");
if (pqresultStatus (res)! =pgres_tuples_ok) {
fprintf (stderr, "Select Failed:%s", pqerrormessage (conn));
Pqclear (res);
Pqfinish (conn);
utgång (1);
}
printf ("PostgreSQL -version:%s \ n", pqgetValue (res, 0, 0));
Pqclear (res);
Pqfinish (conn);
return 0;
}
`` `
Innan du sammanställer:
* installera libpq-dev: Du måste installera PostgreSQL Client Development Libraries. På Debian/Ubuntu-system görs detta vanligtvis med:`sudo apt-get install libpq-dev`
* Compile: Kompilera din kod med en C -kompilator (som GCC):`gcc your_program_name.c -lpq -o your_program_name`
Kom ihåg att ersätta PlaceHolder Connection String -värden med dina faktiska databasuppgifter. Grundlig felhantering är avgörande i produktionskoden för att förhindra oväntade krascher. Detta exempel ger grundläggande felkontroll; Mer robust felhantering skulle behövas för en verklig applikation.