PGCom handbook

--------------------------------
[--PostgreSQL Communicate LIB--]
[VERSION]: 1.1

[AUTHOR] : LeeQ
[EMAIL]  : leeproer@hotmail.com
[CREATE] : 2006-10-10

[COPYRIGHT BY AUTHOR]
--------------------------------

PGCom接口手册 V1.1

作者:李强
日期:2006-10-12

头文件PGCom.h
//--------------------------------------------------------------------------------------------------------------
公共接口函数原型与调用说明
{建议构造实体对象而不使用指针对象,实体对象释放时所有的数据池空间将自动释放,如使用指针对象请注意销毁对象指针}
//--------------------------------------------------------------------------------------------------------------
[构造函数]
PGCom();
<说明>
 调用方已经取得数据库连接,仅使用此库中的功能来简化数据库操作。
 
PGCom(const string &strUsername, const string &strPassword, const string &strDBname);
<说明>
 由库提供数据库连接。
<参数>
 strUsername :数据库连接用户名
 strPassword :数据库连接密码
 strDBname :数据库名称

[功能函数]
void version();
<说明>
 将打印库版本信息到标准输出。

void setCommit(const bool b_auto);
<说明>
 是否执行SQL完成后自动提交(或回滚)执行结果。
 设置为自定义时可调用sql_commit()函数自定义提交(或回滚)执行结果。
 此状态开关将一直作用下次设置之前。
<参数>
 b_auto :true 自动执行(默认) false 自定义执行
 
void setLog(const bool b_log);
<说明>
 日志开关函数,调用SQL是否记录文件。
 文件将记录在可执行文件运行目录,文件名为pgcom.log。
 此状态开关将一直作用下次设置之前。
 在客户程序完成以后可以在调用前设置为关闭以日志。
<参数>
 b_log :true 记录日志(默认) false 关闭记录
 
void setDebug(const bool b_debug);
<说明>
 依据setLog开关设置记录执行SQL语句
 是否执行SQL完成后自动记录执行结果,
 如果执行成功则不记录日志文件,
 执行失败将记录如右日志格式:[执行时间]<错误代码>{执行语句}
 若设置为true则将所有执行SQL记录到日志文件。
 此状态开关将一直作用下次设置之前。
<参数>
 b_debug :true 记录所有 false 仅记录出错SQL(默认)

const string sql_insert(const string &strSQL);
<说明>
 数据库插入数据操作。
<参数>
 strSQL :由关键字insert组成的SQL语句。
<返回>
 执行结果代码 SQLCA.SQLSTATE
 
const string sql_delete(const string &strSQL);
<说明>
 数据库删除数据操作。
<参数>
 strSQL :由关键字delete组成的SQL语句。
<返回>
 执行结果代码 SQLCA.SQLSTATE
 
const string sql_update(const string &strSQL);
<说明>
 数据库更新数据操作。
<参数>
 strSQL :由关键字update组成的SQL语句。
<返回>
 执行结果代码 SQLCA.SQLSTATE
 
const string sql_select(const string &strSQL);
<说明>
 数据库查找数据操作。
 查询结果将存放于类似于图标的数据池中,此数据池将在下一次查询前清空。
 ->不支持select * from ... 的模糊字段查询。凡是复合字段请使用别名(as),并且别名与“,”之间不要有空格,所有查询字段与“,”之间都不能有空格。<-
<参数>
 strSQL :由关键字select组成的SQL语句。
<返回>
 执行结果代码 SQLCA.SQLSTATE

void sql_commit();
<说明>
 自定义提交(或回滚)操作函数。

const long getColCount();
<说明>
 获取查询结果的列数。
<返回>
 列数
 
const long getRowCount();
<说明>
 获取查询结果的行数。
<返回>
 行数

const string fetchField(const long col);
<说明>
 获取查询结果列名。
<参数>
 col :列号。
<返回>
 字段名称
 
const string fetchData(const string &strFieldname, const long row);
<说明>
 获取查询结果数据元。
<参数>
 strFieldname : 字段名称
 row    : 数据行号
<返回>
 数据元
 
const string fetchData(const long col, const long row);
<说明>
 获取查询结果数据元。
<参数>
 col : 列号
 row : 行号
<返回>
 数据元
//--------------------------------------------------------------------------------------------------------------


示例源码 pgrun.cpp
//--------------------------------------------------------------------------------------------------------------

// FILE : pgrun.cpp
// AUTH : LeeQ
// DATE : 2006-10-10 22:22
// MAIL : leeproer@hotmail.com
// DESC : pgcom lib main example program.

#include <string>
#include "pgcom.h"

using namespace std;

int main(int argc, char *args[])
{
 PGCom pgc("", "", "pgdb");
 string strSQL = "", strFlag = "";
 
 if(argc != 2)
 {
  printf("Error parameter /nUSAGE: pgrun [insert|delete|update|select|version]");
  
  return -1;
 }

 if(strcmp(args[1], "version") == 0)
 {
  //version display
  pgc.version();
 }
 else if(strcmp(args[1], "insert") == 0)
 {
  //insert example
  strSQL = "insert into tb_user(name, age) values('pgrun', 10)";
  strFlag = pgc.sql_insert(strSQL);
 }
 else if(strcmp(args[1], "delete") == 0)
 {
  //delete example
  strSQL = "delete from tb_user where name = 'newpgrun'";
  strFlag = pgc.sql_insert(strSQL);
 }
 else if(strcmp(args[1], "update") == 0)
 {
  //update example
  strSQL = "update tb_user set name = 'newpgrun' where name = 'pgrun'";
  strFlag = pgc.sql_update(strSQL);
 }
 else if(strcmp(args[1], "select") == 0)
 {
  //select example
  strSQL = "SELECT NAME, AGE FROM tb_user";
  strFlag = pgc.sql_select(strSQL);
  
  printf("COL[%d]ROW[%d]/n", pgc.getColCount(), pgc.getRowCount());
 
  for(int i = 0; i < pgc.getColCount(); i++)
  {
   printf("%6s", pgc.fetchField(i).c_str());
  }
  
  printf("/n");
  
  for(int m = 0; m < pgc.getRowCount(); m++)
  {
   for(int n = 0; n < pgc.getColCount(); n++)
   {
    printf("%6s", pgc.fetchData(n, m).c_str());
   }
   
   printf("/n");
  }
 }
 else
 {
  printf("No this parameter [%s]/n", args[1]);
  
  return 0;
 }

 printf("SQLSTATE [%s]/n", strFlag.c_str());
 
 return 0;
}

//--------------------------------------------------------------------------------------------------------------
编译指令
g++ -I[头文件路径] -L[库文件路径] -lpgcom -o pgrun pgrun.cpp
//--------------------------------------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值