Exec 向后端服务器发送一个查询。可能我们更愿意使用下面两个函数之一。
ExecStatusType PgConnection::Exec(const char* query)
返回查询的结果。可能的状态结果可以是下面的值:
| PGRES_EMPTY_QUERY |
| PGRES_COMMAND_OK,如果查询是一条命令 |
| PGRES_TUPLES_OK,如果查询成功返回元组 |
| PGRES_COPY_OUT |
| PGRES_COPY_IN |
| PGRES_BAD_RESPONSE,如收到一个未知的响应 |
| PGRES_NONFATAL_ERROR |
| PGRES_FATAL_ERROR |
ExecCommandOk 向后端服务器发送一条命令查询。
int PgConnection::ExecCommandOk(const char *query)
如果命令查询成功则返回 TRUE。
ExecTuplesOk 向后端服务器发送一条命令查询。
int PgConnection::ExecTuplesOk(const char *query)
如果命令查询成功则返回 TRUE。
ErrorMessage 返回最后一条错误信息文本。
const char *PgConnection::ErrorMessage()
Tuples 返回查询结果里元组(实例)的条数。
int PgDatabase::Tuples()
Fields 返回查询结果里每条元组的数据域(字段)数。
int PgDatabase::Fields()
FieldName 返回与指定域索引相联的域(字段)名称。域索引从 0 开始计数。
const char *PgDatabase::FieldName(int field_num)
FieldNum 返回与指定域(字段)名称相联的域索引。
int PgDatabase::FieldNum(const char* field_name)
如果给出的名称无法与任何域匹配返回 -1。
FieldType 返回与给出域索引相联的域类型。 返回的整数是该类型的内部编码。域索引从 0 开始计数。
Oid PgDatabase::FieldType(int field_num)
FieldType 返回与给出域索引相联的域的类型。 返回的整数是该类型的内部编码。域索引从 0 开始计数。
Oid PgDatabase::FieldType(const char* field_name)
FieldSize 返回与给出域索引相联域以字节计算的尺寸。域索引从 0 开始计数。
short PgDatabase::FieldSize(int field_num)
返回在数据库元组里面给该数据域分配的空间,
换句话说就是该数据类型在服务器里的二进制形式的大小(尺寸).
如果该数据域是可变尺寸,返回 -1.
FieldSize 返回与给出域名称相联的域的以字节计算的尺寸。域索引从 0 开始计数。
short PgDatabase::FieldSize(const char *field_name)
返回在数据库元组里面给该数据域分配的空间,
换句话说就是该数据类型在服务器里的二进制形式的大小(尺寸).
如果该数据域是可变尺寸,返回 -1.
GetValue 返回一个 PGresult 里面的一条元组的单独的一个数据域(字段)的值. 元组和数据域索引从 0 开始.
const char *PgDatabase::GetValue(int tup_num, int field_num)
对大多数查询而言,
GetValue 返回的值是一个表示字段值的空(NULL)结尾的 ASCII 字符串.
但是如果BinaryTuples() 为 TRUE,
GetValue 返回的值就是该类型在后端服务器内部的二进制表现形式
(但是不包括尺寸字--如果数据域是变长的).
这样,把数据转换成对应的 C 类型就是程序员的责任了.
GetValue 返回的指针指向一个本身是 PGresult 结构的一部分的存储区域.
我们不能对其做修改,
并且如果我们要在 PGresult结构的生存期后还要使用它的话,
我们必须显式的把该数值拷贝到其他存储器中.
BinaryTuples() 还没有实现。
GetValue 返回一个 PGresult 里面的一条元组的单独的一个数据域(字段)的值. 元组和数据域索引从 0 开始.
const char *PgDatabase::GetValue(int tup_num, const char *field_name)
对大多数查询而言,
GetValue 返回的值是一个表示字段值的空(NULL)结尾的 ASCII
字符串.
但是如果BinaryTuples() 为 TRUE,
GetValue 返回的值就是该类型在后端服务器内部的二进制表现形式
(但是不包括尺寸字--如果数据域是变长的).
这样,把数据转换成对应的 C 类型就是程序员的责任了.
GetValue 返回的指针指向一个本身是 PGresult 结构的一部分的存储区域.
我们不能对其做修改,
并且如果我们要在 PGresult结构的生存期后还要使用它的话,
我们必须显式的把该数值拷贝到其他存储器中.
BinaryTuples() 还没有实现。
GetLength 返回以字节计的数据域(字段)的长度.元组和数据域索引从 0 开始.
int PgDatabase::GetLength(int tup_num, int field_num)
这是某一特定数据值的实际数据长度,也就是由 GetValue 指向的对象的尺寸.
注意,对于 ASCII 代表的数值,这个尺寸与 PQfsize 报告的二进制尺寸无关.
GetLength 返回以字节计的数据域(字段)的长度.元组和数据域索引从 0 开始.
int PgDatabase::GetLength(int tup_num, const char* field_name)
这是某一特定数据值的实际数据长度,也就是由 GetValue 指向的对象的尺寸.
注意,对于 ASCII 代表的数值,这个尺寸与 PQfsize 报告的二进制尺寸无关.
DisplayTuples 向指定输出流打印所有元组和(可选的)字段名。
void PgDatabase::DisplayTuples(FILE *out = 0, int fillAlign = 1,
const char* fieldSep = "|",int printHeader = 1, int quiet = 0)
PrintTuples 向指定输出流打印所有元组和(可选的)字段名。
void PgDatabase::PrintTuples(FILE *out = 0, int printAttName = 1,
int terseOutput = 0, int width = 0)
CmdTuples 返回在一次 INSERT,UPDATE 或 DELETE 后涉及的行数. 如果是其他命令,返回 -1.
int PgDatabase::CmdTuples()
OidStatus
const char *PgDatabase::OidStatus()
GetLine
int PgDatabase::GetLine(char* string, int length)
PutLine
void PgDatabase::PutLine(const char* string)
EndCopy
int PgDatabase::EndCopy()