postgreSQL获得指定表的列数

//g++ getTableFieldNum.cpp pqCopy.cpp -I /usr/local/pgsql/include/ -L/usr/local/pgsql/lib -lpq -o get -g
#include <libpq-fe.h>
#include <iostream>
#include "pqCopy.h"

using namespace std;


char pDBServer[STR_LEN+1];
char g_strDBName[STR_LEN +1];
char pDBUser[STR_LEN+1];
char pDBPwd[STR_LEN+1];
int g_nClientEncoding;

bool getTableColumn(char *par_strTableName,int &par_usColumnNO)
{
PGconn* pDBconn = NULL;
pDBconn = connectDB();
int status = -1;

PGresult *res = NULL;
char pSQL[STR_LEN +1] = {0};
snprintf(pSQL,STR_LEN,"select * from td_usergrp_waphost_d_20120416 limit 1;");


res = PQexec(pDBconn,"BEGIN");

if(PQresultStatus(res) != PGRES_COMMAND_OK) //成功完成一个不返回数据的命令
{
//LOG("执行BEGIN失败[%s]",PQerrorMessage(PGconn));
}

PQclear(res);

res = PQexec(pDBconn,pSQL);

status = PQresultStatus(res);

if (status != PGRES_TUPLES_OK) //成功执行一个返回数据的查询查询
{
LOG("查询表失败");
char *pStrError = PQerrorMessage(pDBconn);
printf("sql: %s\n",pStrError);

PQclear(res);
}

par_usColumnNO = PQnfields(res);
cout << PQnfields(res) << endl;
PQclear(res);

res = PQexec(pDBconn,"END");
PQclear(res);


}


int main()
{
strncpy( pDBServer,"192.168.227.128",STR_LEN );
strncpy(g_strDBName,"test",STR_LEN);
strncpy(pDBUser,"postgres",STR_LEN);
strncpy(pDBPwd,"123456",STR_LEN);
char strTable[100];
int usColumnNO = 0;
getTableColumn(strTable,usColumnNO);

cout << usColumnNO << endl; }

相关文章

文章浏览阅读601次。Oracle的数据导入导出是一项基本的技能,...
文章浏览阅读553次。开头还是介绍一下群,如果感兴趣polardb...
文章浏览阅读3.5k次,点赞3次,收藏7次。折腾了两个小时多才...
文章浏览阅读2.7k次。JSON 代表 JavaScript Object Notation...
文章浏览阅读2.9k次,点赞2次,收藏6次。navicat 连接postgr...
文章浏览阅读1.4k次。postgre进阶sql,包含分组排序、JSON解...