⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tt.c

📁 socket编程socket编程socket编程socket编程socket编程socket编程socket编程
💻 C
字号:
/**
*gcc -o tt tt.c -I/usr/local/postgresql/include -L/usr/local/postgresql/lib -lpq
*
*
*g++ -static -L/usr/lib -lpq -o test test.cpp 
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libpq-fe.h"

static void
exit_nicely(PGconn *conn)
{
	PQfinish(conn);
	exit(1);
}

int 
main(int argc,char **argv)
{
	const char *conninfo;
	PGconn	*conn;
	PGresult *res;
	int nFields;
	int i,j;
	char *msg;
	
	if(argc>1)
		conninfo = argv[1];
	else
		conninfo="host=127.0.0.1 user=postgres password=postgres dbname=sms port=5432";

	conn = PQconnectdb(conninfo);

	if(PQstatus(conn) != CONNECTION_OK)
	{
		fprintf(stderr,"Connection to database failed: %s",
			    PQerrorMessage(conn));
		exit_nicely(conn);
	}

	res=PQexec(conn,"BEGIN");

	if(PQresultStatus(res) != PGRES_COMMAND_OK)
	{
		fprintf(stderr,"Begin command failed: %s",
			    PQerrorMessage(conn));
		PQclear(res);
		exit_nicely(conn);
	}
	
	/*
	业务代码开始
	*/
	res=PQexec(conn,"insert into test values(2,'test2')");

	msg = PQresultErrorMessage(res);

	if(strlen(msg) > 0)
    {
      printf ("execute prepared statemnt faild caused by : %s", msg);
    }

   /*
	if(PQresultStatus(res) != PGRES_TUPLES_OK)
	{
		fprintf(stderr, "Insert failed: %s", PQerrorMessage(conn));
		PQclear(res);
		exit_nicely(conn);
	}
	*/

	PQclear(res);

	res=PQexec(conn,"select * from test");

	if(PQresultStatus(res) != PGRES_TUPLES_OK)
	{
		fprintf(stderr, "SELECT failed: %s", PQerrorMessage(conn));
		PQclear(res);
		exit_nicely(conn);
	}

	nFields=PQnfields(res);

	for(i=0;i<nFields;i++)
		printf("%-15s",PQfname(res,i));
	printf("\n\n");

	for(i=0;i<PQntuples(res);i++)
	{
		for(j=0;j<nFields;j++)
		{
			printf("%-15s",PQgetvalue(res,i,j));
		}
		printf("\n");
	}

	PQclear(res);

	/*
	业务代码结束
	*/
	res=PQexec(conn,"END");

	//PQclear(res);

	PQfinish(conn);

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -