//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: %sn",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; } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|