//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;
}