PostgreSQL7.0手册-接口-54. libpq - C++ 绑定库
一条错误信息文本。
const char *PgConnection::ErrorMessage()
Tuples 返回查询结果里记录(实例)的条数。
int PgDatabase::Tuples()
CmdTuples 返回在一次 INSERT,UPDATE 或 DELETE 后涉及的行数.如果是其他命令,返回 -1.
int PgDatabase::CmdTuples()
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)
GetLine
int PgDatabase::GetLine(char* string, int length)
PutLine
void PgDatabase::PutLine(const char* string)
OidStatus
const char *PgDatabase::OidStatus()
EndCopy
int PgDatabase::EndCopy()
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
异步通知
Postgres 支持通过 LISTEN 和 NOTIFY 命令产生的异步通知.一个后端用 LISTEN 命令注册一个它感兴趣的信号灯.所有正在监听某一命名信号灯的后端在该条件名的 NOTIFY (通知)被另一个后端执行后都将被异步地通知.没有附加的信息从通知发出者传递到通知接收者.因此,很典型地,任何实际的需要被传递的数据都是通过一个数据库关系传递的.通常条件名是与相关联的关系同名,但是并不是一定要与某个关系相关才行.
注意:以前,本文档把用于异步通知的名称与关系或者表相联。但实际上在这两个概念的实现上没有任何直接的联系
const char *PgConnection::ErrorMessage()
Tuples 返回查询结果里记录(实例)的条数。
int PgDatabase::Tuples()
CmdTuples 返回在一次 INSERT,UPDATE 或 DELETE 后涉及的行数.如果是其他命令,返回 -1.
int PgDatabase::CmdTuples()
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)
GetLine
int PgDatabase::GetLine(char* string, int length)
PutLine
void PgDatabase::PutLine(const char* string)
OidStatus
const char *PgDatabase::OidStatus()
EndCopy
int PgDatabase::EndCopy()
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
异步通知
Postgres 支持通过 LISTEN 和 NOTIFY 命令产生的异步通知.一个后端用 LISTEN 命令注册一个它感兴趣的信号灯.所有正在监听某一命名信号灯的后端在该条件名的 NOTIFY (通知)被另一个后端执行后都将被异步地通知.没有附加的信息从通知发出者传递到通知接收者.因此,很典型地,任何实际的需要被传递的数据都是通过一个数据库关系传递的.通常条件名是与相关联的关系同名,但是并不是一定要与某个关系相关才行.
注意:以前,本文档把用于异步通知的名称与关系或者表相联。但实际上在这两个概念的实现上没有任何直接的联系

