“Conocimiento software>SQL Server

¿Cómo se conecta una base de datos SQL Postgress en C?

2011/9/17
Conectarse a una base de datos PostgreSQL de C requiere usar la biblioteca LibPQ. Aquí hay un desglose de cómo hacerlo, junto con explicaciones y manejo de errores:

1. Incluya encabezados:

`` `C

#Include

#Include

#Include

#incluir // El encabezado de la biblioteca de clientes de PostgreSQL

`` `` ``

2. Establecer conexión:

Este es el núcleo del proceso. Necesitará una cadena de conexión que especifique los parámetros de la base de datos.

`` `C

Pgconn *conn;

const char *conninfo;

conninfo ="dbname =myDatabase user =myUser contraseña =mypassword host =localhost port =5432"; // reemplazar con sus datos

conn =pqconnectdb (conninfo);

if (pqStatus (Conn)! =Connection_ok) {

fprintf (stderr, "conexión a la base de datos falló:%s", pqerMormessage (Conn));

Pqfinish (Conn);

salida (1);

}

`` `` ``

* `dbname =myDatabase`: El nombre de su base de datos PostgreSQL.

* `user =myuser`: Su nombre de usuario PostgreSQL.

* `contraseña =mypassword`: Su contraseña PostgreSQL.

* `host =localhost`: El nombre de host o la dirección IP del servidor PostgreSQL. Cambie si su base de datos no es local.

* `puerto =5432`: El número de puerto PostgreSQL está escuchando (el valor predeterminado es 5432).

3. Ejecutar consultas:

Después de conectarse, puede ejecutar consultas SQL. Este ejemplo muestra una simple consulta `select`:

`` `C

PGresult *res;

res =pqExec (Conn, "Seleccionar versión ();");

if (pqResultStatus (res)! =Pgres_tuples_ok) {

fprintf (stderr, "seleccione fallido:%s", pqerRormessage (Conn));

Pqclear (res);

Pqfinish (Conn);

salida (1);

}

printf ("Versión PostgreSQL:%s \ n", pqgetValue (res, 0, 0));

Pqclear (res); // Libre la memoria de conjunto de resultados

`` `` ``

* `pqExec (conn," seleccione versión (); ")`: Ejecuta la consulta SQL.

* `pqResultStatus (res)`: Verifica el estado de la ejecución de la consulta. `Pgres_tuples_ok` indica el éxito.

* `pqgetValue (res, 0, 0)`: Recupera el valor del conjunto de resultados. `(0, 0)` Especifica la primera fila (0) y la primera columna (0).

4. Manejar otros tipos de consultas (insertar, actualizar, eliminar):

Para las consultas `insert`,` uply` y `eliminar ', normalmente verificará` pqcmdtupples` para ver cuántas filas se vieron afectadas.

`` `C

res =pqExec (Conn, "Insertar en valores myTable (column1, column2) ('value1', 'value2');");

if (pqResultStatus (res) ==pgres_command_ok) {

printf ("insertar exitosas. %ld filas afectadas \ n", pqcmdtuples (res));

} demás {

fprintf (stderr, "insertar fallido:%s", pqerRormessage (conn));

}

Pqclear (res);

`` `` ``

5. Cierre la conexión:

Siempre cierre la conexión cuando haya terminado.

`` `C

Pqfinish (Conn);

`` `` ``

Ejemplo completo:

`` `C

#Include

#Include

#Include

#incluir

int main () {

Pgconn *conn;

const char *conninfo;

PGresult *res;

conninfo ="dbname =myDatabase user =myUser contraseña =mypassword host =localhost port =5432"; // reemplazar con sus datos

conn =pqconnectdb (conninfo);

if (pqStatus (Conn)! =Connection_ok) {

fprintf (stderr, "conexión a la base de datos falló:%s", pqerMormessage (Conn));

salida (1);

}

res =pqExec (Conn, "Seleccionar versión ();");

if (pqResultStatus (res)! =Pgres_tuples_ok) {

fprintf (stderr, "seleccione fallido:%s", pqerRormessage (Conn));

Pqclear (res);

Pqfinish (Conn);

salida (1);

}

printf ("Versión PostgreSQL:%s \ n", pqgetValue (res, 0, 0));

Pqclear (res);

Pqfinish (Conn);

regresar 0;

}

`` `` ``

Antes de compilar:

* instalar libpq-dev: Deberá instalar las bibliotecas de desarrollo de clientes PostgreSQL. En los sistemas Debian/Ubuntu, esto generalmente se hace con:`sudo apt-get install libpq-dev`

* compilar: Compile su código usando un compilador C (como GCC):`GCC Your_Program_Name.C -LPQ -O Your_Program_Name`

Recuerde reemplazar los valores de las cadenas de conexión del marcador de posición con las credenciales de su base de datos reales. El manejo de errores exhaustivos es crucial en el código de producción para evitar bloqueos inesperados. Este ejemplo proporciona verificación de errores básicos; Se necesitaría un manejo de errores más robusto para una aplicación del mundo real.

SQL Server
¿SQL y MySQL son iguales?
¿De quién es el dueño de Oracle y sus acciones?
¿Cómo se selecciona una columna específica en Oracle?
Cómo ejecutar una consulta de base de datos SQL
Réplica de SQL Server Tutorial Combinar
¿Cuál es la vista en SQL Server 2005?
¿Qué es el bloqueo de pestañas en SQLServer?
¿Qué es la columna firmada?
Conocimiento de la computadora © http://www.ordenador.online