↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.2 / 7.1
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

3.5. 查询执行函数 #

3.5.1. 主例程 #

  • 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)
    

    命令成功时返回真(1)。

  • ExecTuplesOk 向后端服务器发送一条查询命令(返回行的命令)。

    int PgConnection::ExecTuplesOk(const char *query)
    

    查询成功时返回真(1)。

  • ErrorMessage 返回最后一条错误消息的文本。

    const char *PgConnection::ErrorMessage()
    

3.5.2. 获取 SELECT 结果信息 #

  • Tuples 返回查询结果中元组(行)的数目。

    int PgDatabase::Tuples() const
    
  • Fields 返回查询结果中每个元组的字段(列)数目。

    int PgDatabase::Fields()
    
  • FieldName 返回与给定字段索引相关联的字段(列)名。 字段索引从 0 开始。

    const char *PgDatabase::FieldName(int field_num) const
    
  • FieldNum 返回与给定字段名相关联的字段(列)索引。

    int PgDatabase::FieldNum(const char* field_name) const
    

    如果给定的名称不匹配任何字段,则返回 -1。

  • FieldType 返回与给定字段索引相关联的字段类型。返回的整数是该类型的内部编码。 字段索引从 0 开始。

    Oid PgDatabase::FieldType(int field_num) const
    
  • FieldType 返回与给定字段名相关联的字段类型。返回的整数是该类型的内部编码。 字段索引从 0 开始。

    Oid PgDatabase::FieldType(const char* field_name) const
    
  • FieldSize 返回与给定字段索引相关联的字段的字节大小。 字段索引从 0 开始。

    int PgDatabase::FieldSize(int field_num) const
    

    返回数据库元组中为该字段分配的空间(按字段编号给出)。换句话说,就是服务器上该数据类型二进制表示的大小。如果字段是变长的,则返回 -1。

  • FieldSize 返回与给定字段索引相关联的字段的字节大小。 字段索引从 0 开始。

    int PgDatabase::FieldSize(const char *field_name) const
    

    返回数据库元组中为该字段分配的空间(按字段名给出)。换句话说,就是服务器上该数据类型二进制表示的大小。如果字段是变长的,则返回 -1。

3.5.3. 获取 SELECT 结果值 #

  • GetValue 返回 PGresult 中某个元组的单个字段(列)值。 元组和字段索引从 0 开始。

    const char *PgDatabase::GetValue(int tup_num, int field_num) const
    

    对大多数查询来说,GetValue 返回的是属性值的以空字符结尾的字符串表示。但如果 BinaryTuples 为真,GetValue 返回的是该类型以后端服务器内部格式表示的二进制表示(如果字段是变长的,则不包括长度字)。这时由程序员负责把数据造型和转换为正确的 C 类型。GetValue 返回的指针指向 PGresult 结构一部分的存储。不应修改它,如果要在 PGresult 结构自身的生存期之后使用该值,必须把它显式复制到其他存储中。 BinaryTuples 尚未实现。

  • GetValue 返回 PGresult 中某个元组的单个字段(列)值。 元组和字段索引从 0 开始。

    const char *PgDatabase::GetValue(int tup_num, const char *field_name) const
    

    对大多数查询来说,GetValue 返回的是属性值的以空字符结尾的字符串表示。但如果 BinaryTuples 为真,GetValue 返回的是该类型以后端服务器内部格式表示的二进制表示(如果字段是变长的,则不包括长度字)。这时由程序员负责把数据造型和转换为正确的 C 类型。GetValue 返回的指针指向 PGresult 结构一部分的存储。不应修改它,如果要在 PGresult 结构自身的生存期之后使用该值,必须把它显式复制到其他存储中。 BinaryTuples 尚未实现。

  • GetLength 返回字段(列)的字节长度。 元组和字段索引从 0 开始。

    int PgDatabase::GetLength(int tup_num, int field_num) const
    

    这是该数据值的实际数据长度,即 GetValue 所指向对象的大小。注意,对于以字符表示的值,这个大小与 PQfsize 报告的二进制大小关系不大。

  • GetLength 返回字段(列)的字节长度。 元组和字段索引从 0 开始。

    int PgDatabase::GetLength(int tup_num, const char* field_name) const
    

    这是该数据值的实际数据长度,即 GetValue 所指向对象的大小。注意,对于以字符表示的值,这个大小与 PQfsize 报告的二进制大小关系不大。

  • GetIsNull 返回某个字段是否为空值。

    bool GetIsNull(int tup_num, int field_num) const
    

    注意,对于空值字段,GetValue 返回的是空字符串而不是 NULL 指针。

  • GetIsNull 返回某个字段是否为空值。

    bool GetIsNull(int tup_num, const char *field_name) const
    

    注意,对于空值字段,GetValue 返回的是空字符串而不是 NULL 指针。

  • DisplayTuples 把所有元组以及可选的属性名打印到指定的输出流。

    void PgDatabase::DisplayTuples(FILE *out = 0, bool fillAlign = true, 
    const char* fieldSep = "|", bool printHeader = true, bool quiet = false) const
    

    该函数已过时。

  • PrintTuples 把所有元组以及可选的属性名打印到指定的输出流。

    void PgDatabase::PrintTuples(FILE *out = 0, bool printAttName = true, 
    bool terseOutput = false, bool fillAlign = false) const
    

    该函数已过时。

3.5.4. 获取非 SELECT 结果信息 #

  • CmdTuples 返回 INSERT、UPDATE 或 DELETE 之后受影响的行数。如果是其他命令,则返回 -1。

    int PgDatabase::CmdTuples() const
    
  • OidStatus

    const char *PgDatabase::OidStatus() const
    

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。