postgresql/src/interfaces/libpq++/pgdatabase.cc

177 lines
2.9 KiB
C++

/*-------------------------------------------------------------------------
*
* FILE
* pgdatabase.cpp
*
* DESCRIPTION
* implementation of the PgDatabase class.
* PgDatabase encapsulates some utility routines
*
* Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq++/Attic/pgdatabase.cc,v 1.9 2000/01/29 16:58:52 petere Exp $
*
*-------------------------------------------------------------------------
*/
#include "pgdatabase.h"
void PgDatabase::DisplayTuples(FILE *out, int fillAlign,
const char* fieldSep, int printHeader,
int /* quiet */)
{
PQprintOpt po;
memset(&po,0,sizeof(po));
po.align = fillAlign;
po.fieldSep = (char *)fieldSep;
po.header = printHeader;
PQprint(out,pgResult,&po);
}
void PgDatabase::PrintTuples(FILE *out, int printAttName, int terseOutput,
int width)
{
PQprintOpt po;
memset(&po,0,sizeof(po));
po.align = width;
if(terseOutput) po.fieldSep = strdup("|");
else po.fieldSep = "";
po.header = printAttName;
PQprint(out,pgResult,&po);
}
int PgDatabase::Tuples()
{
return PQntuples(pgResult);
}
int PgDatabase::CmdTuples()
{
char *a;
a = (char *)PQcmdTuples(pgResult);
if(!a[0]) return -1;
return atoi(a);
}
int PgDatabase::Fields()
{
return PQnfields(pgResult);
}
const char* PgDatabase::FieldName(int field_num)
{
return PQfname(pgResult, field_num);
}
int PgDatabase::FieldNum(const char* field_name)
{
return PQfnumber(pgResult, field_name);
}
Oid PgDatabase::FieldType(int field_num)
{
return PQftype(pgResult, field_num);
}
Oid PgDatabase::FieldType(const char* field_name)
{
return PQftype(pgResult, FieldNum(field_name));
}
short PgDatabase::FieldSize(int field_num)
{
return PQfsize(pgResult, field_num);
}
short PgDatabase::FieldSize(const char* field_name)
{
return PQfsize(pgResult, FieldNum(field_name));
}
const char* PgDatabase::GetValue(int tup_num, int field_num)
{
return PQgetvalue(pgResult, tup_num, field_num);
}
const char* PgDatabase::GetValue(int tup_num, const char* field_name)
{
return PQgetvalue(pgResult, tup_num, FieldNum(field_name));
}
int PgDatabase::GetIsNull(int tup_num, int field_num)
{
return PQgetisnull(pgResult, tup_num, field_num);
}
int PgDatabase::GetIsNull(int tup_num, const char* field_name)
{
return PQgetisnull(pgResult, tup_num, FieldNum(field_name));
}
int PgDatabase::GetLength(int tup_num, int field_num)
{
return PQgetlength(pgResult, tup_num, field_num);
}
int PgDatabase::GetLength(int tup_num, const char* field_name)
{
return PQgetlength(pgResult, tup_num, FieldNum(field_name));
}
int PgDatabase::GetLine(char* string, int length)
{
return PQgetline(pgConn, string, length);
}
void PgDatabase::PutLine(const char* string)
{
PQputline(pgConn, string);
}
const char* PgDatabase::OidStatus()
{
return PQoidStatus(pgResult);
}
int PgDatabase::EndCopy()
{
return PQendcopy(pgConn);
}