Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> SQL Server >> .

Come si collega un database SQL postgress in C?

La connessione a un database PostgreSQL da C richiede l'utilizzo della libreria LIBPQ. Ecco una rottura di come farlo, insieme a spiegazioni e gestione degli errori:

1. Includi intestazioni:

`` `c

#include

#include

#include

#include // l'intestazione della libreria client PostgreSQL

`` `

2. Stabilire la connessione:

Questo è il nucleo del processo. Avrai bisogno di una stringa di connessione che specifica i parametri del database.

`` `c

Pgconn *conn;

const char *conninfo;

ConnInfo ="dbname =myDatabase user =myuser password =mypassword host =localhost port =5432"; // Sostituisci con i tuoi dettagli

conn =pqConnectDB (ConnInfo);

if (pqstatus (conn)! =connection_ok) {

fprintf (stderr, "connessione al database non riuscita:%s", pqerrormessage (conn));

Pqfinish (conn);

uscita (1);

}

`` `

* `dbname =mydatabase`: Il nome del tuo database PostgreSQL.

* `user =myuser`: Il tuo nome utente postgreSQL.

* `password =mypassword`: La tua password PostgreSQL.

* `host =localhost`: Il nome host o l'indirizzo IP del server PostgreSQL. Modifica se il tuo database non è locale.

* `port =5432`: Il numero di porta PostgreSQL sta ascoltando (il valore predefinito è 5432).

3. Esegui query:

Dopo la connessione, è possibile eseguire query SQL. Questo esempio mostra una semplice query `select`:

`` `c

PGRESULT *RES;

res =pqexec (conn, "select versione ();");

if (pqresultstatus (res)! =pgres_tuples_ok) {

fprintf (stderr, "seleziona non riuscita:%s", pqerrormessage (conn));

Pqclear (res);

Pqfinish (conn);

uscita (1);

}

printf ("versione postgresql:%s \ n", pqgetvalue (res, 0, 0));

Pqclear (res); // liberi la memoria set di risultati

`` `

* `pqexec (conn," select versione (); ")`: Esegue la query SQL.

* `pqresultstatus (res)`: Controlla lo stato dell'esecuzione delle query. `Pgres_tuples_ok` indica il successo.

* `pqgetvalue (res, 0, 0)`: Recupera il valore dal set di risultati. `(0, 0)` Specifica la prima riga (0) e la prima colonna (0).

4. Gestisci altri tipi di query (inserisci, aggiorna, elimina):

Per query `insert`,` update` e `delete`, in genere controllerai` pqcmdtuples` per vedere quante righe sono state interessate.

`` `c

Res =pqexec (Conn, "Inserisci nei valori MyTable (column1, column2) ('valore1', 'valore2');");

if (pqresultstatus (res) ==pgres_command_ok) {

printf ("Inserisci successo. %LD righe interessate \ n", pqcmdtuples (res));

} altro {

fprintf (Stderr, "Inserisci fallito:%s", pqerrormessage (conn));

}

Pqclear (res);

`` `

5. Chiudi la connessione:

Chiudi sempre la connessione quando hai finito.

`` `c

Pqfinish (conn);

`` `

Esempio completo:

`` `c

#include

#include

#include

#include

int main () {

Pgconn *conn;

const char *conninfo;

PGRESULT *RES;

ConnInfo ="dbname =myDatabase user =myuser password =mypassword host =localhost port =5432"; // Sostituisci con i tuoi dettagli

conn =pqConnectDB (ConnInfo);

if (pqstatus (conn)! =connection_ok) {

fprintf (stderr, "connessione al database non riuscita:%s", pqerrormessage (conn));

uscita (1);

}

res =pqexec (conn, "select versione ();");

if (pqresultstatus (res)! =pgres_tuples_ok) {

fprintf (stderr, "seleziona non riuscita:%s", pqerrormessage (conn));

Pqclear (res);

Pqfinish (conn);

uscita (1);

}

printf ("versione postgresql:%s \ n", pqgetvalue (res, 0, 0));

Pqclear (res);

Pqfinish (conn);

restituzione 0;

}

`` `

Prima di compilare:

* Installa libpq-dev: Dovrai installare le librerie di sviluppo client PostgreSQL. Sui sistemi Debian/Ubuntu, questo di solito viene fatto con:`sudo apt-get Installa libpq-dev`

* Compila: Compila il codice utilizzando un compilatore C (come GCC):`GCC your_program_name.c -lpq -o your_program_name`

Ricorda di sostituire i valori della stringa di connessione segnaposto con le credenziali del database effettive. Una gestione completa degli errori è cruciale nel codice di produzione per prevenire arresti anomali imprevisti. Questo esempio fornisce il controllo degli errori di base; Sarebbe necessaria una gestione degli errori più robusta per un'applicazione del mondo reale.

 

software © www.354353.com