Una vez que se ha establecido correctamente una conexión con un servidor de base de datos, se utilizan las funciones que se muestran a continuación para realizar consultas y comandos de SQL.
PQexec Emite una consulta a Postgres y espera el resultado.
PGresult *PQexec(PGconn *conn, const char *query); |
La estructura PGresult encapsula el resultado devuelto por el servidor a la consulta. Los programadores de aplicaciones con libpq deberían mostrarse cuidadosos de mantener la abstracción de PGresult. Prohiban la referencia directa a los campos de la estructura PGresult, porque están sujetos a cambios en el futuro. (Incluso a partir de la versión 6.4 de Postgres, ha dejado de proporcionarse la definición de PGresult en libpq-fe.h. Si tiene usted código antíguo que accede directamente a los campos de PGresult, puede mantenerlo utilizando libpq-int.h también, pero le recomendamos que ajuste pronto el código).
PQresultStatus Devuelve la situación (status) resultante de una consulta.
ExecStatusType PQresultStatus(const PGresult *res) |
PGRES_EMPTY_QUERY -- La cadena enviada al servidor estaba vacía.
PGRES_COMMAND_OK -- El comando se ha ejecutado con éxito sin devolver datos.
PGRES_TUPLES_OK -- La consulta se ha ejecutado con éxito.
PGRES_COPY_OUT -- Se ha arrancado la transmisión de datos desde el servidor (Copy Out)
PGRES_COPY_IN -- Se ha arrancado la transmisión de datos hacia el servidor (Copy In)
PGRES_BAD_RESPONSE -- El servidor ha dado una respuesta desconocida.
PGRES_NONFATAL_ERROR
PGRES_FATAL_ERROR
PQresStatus Convierte los tipos enumerados devueltos por PQresultStatus en una cadena constante que describe el código de la situación.
char *PQresStatus(ExecStatusType status); |
PQresultErrorMessage Devuelve el mensaje de error asociado con la consulta, o una cadena vacía si no hay error.
char *PQresultErrorMessage(const PGresult *res); |
PQntuples Devuelve el númerod de tuplas (instancias) del resultado de la consulta.
int PQntuples(const PGresult *res); |
PQnfields Devuelve el número de campos (atributos) de cada tupla del resultado de la consulta.
int PQnfields(const PGresult *res); |
PQbinaryTuples Devuelve 1 si PGresult contiene datos binarios en las tuplas, y 0 si contiene datos ASCII.
int PQbinaryTuples(const PGresult *res); |
PQfname Devuelve el nombre del campo (atributo) asociado con el indice de campo dado. Los índices de campo empiezan con 0.
char *PQfname(const PGresult *res, int field_index); |
PQfnumber Devuelve el índice del campo (atributo) asociado con el nombre del campo dado.
int PQfnumber(const PGresult *res, const char *field_name); |
Se devuelve -1 si el nombre de campo dado no se corresponde con ningún campo.
PQftype Devuelve el tipo de campo asociado con el índice del campo dado. El entero devuelto es una codificación interna del tipo. Los índices de campo empiezan con 0.
Oid PQftype(const PGresult *res, int field_num); |
PQfsize Devuelve el tamaño en bytes del campo asociado con el índice de campo dado. Los índices de campo empiezan con 0.
int PQfsize(const PGresult *res, int field_index); |
PQfmod Devuelve los datos de la modificación específica del tipo del campo asociado con el índice del campo dado. Los índices de campo empiezan en 0.
int PQfmod(const PGresult *res, int field_index); |
PQgetvalue Devuelve un valor de un único campo (atributo) de una tupla de PGresult. Los índices de tuplas y de campos empiezan con 0.
char* PQgetvalue(const PGresult *res, int tup_num, int field_num); |
PQgetlength Devuelve la longitud de un campo (atributo) en bytes. Los índices de tupla y de campo empiezan en 0.
int PQgetlength(const PGresult *res, int tup_num, int field_num); |
PQgetisnull Prueba un campo por si tiene un valor NULL. Los índices de tupla y de campo empiezan con 0.
int PQgetisnull(const PGresult *res, int tup_num, int field_num); |
PQcmdStatus Devuelve la cadena de la situación del comando para el comando SQL que generó el PGresult.
char * PQcmdStatus(const PGresult *res); |
PQcmdTuples Devuelve el número de filas afectadas por el comando SQL.
char * PQcmdTuples(const PGresult *res); |
PQoidValue Devuelve el identificador de objeto (oid) de la tupla insertada, si el comando SQL era una INSERT. En caso contrario, devuelve InvalidOid.
Oid PQoidValue(const PGresult *res); |
PQoidStatus Devuelve una cadena con el identificador de objeto de la tupla insertada si el comando SQL era una INSERT. En otro caso devuelve una cadena vacía.
char * PQoidStatus(const PGresult *res); |
PQprint Imprime todas las tuplas y, opcionalmente, los nombres de los atributos en la salida especificada.
void PQprint(FILE* fout, /* output stream */ const PGresult *res, const PQprintOpt *po); struct { pqbool header; /* Imprime las cabeceras de los campos de salida y el contador de filas. */ pqbool align; /* Fija la alineación de los campos. */ pqbool standard; /* old brain dead format */ pqbool html3; /* tabula la salida en html */ pqbool expanded; /* expande las tablas */ pqbool pager; /* Usa el paginador para la salida si se necesita. */ char *fieldSep; /* separador de campos */ char *tableOpt; /* lo inserta en <tabla ...> de HTML */ char *caption; /* HTML <caption> */ char **fieldName; /* cadena terminada en null de nombres de campo alternativos. */ } PQprintOpt; |
PQclear Libera la zona de almacenamiento asociada con PGresult. Todas los resultados de las consultas deberían liberarse con PQclear cuando ya no son necesarios.
void PQclear(PQresult *res); |
PQmakeEmptyPGresult Construye un objeto PGresult vacío con la situación que se propone.
PGresult* PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status); |