00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00022 #ifndef POSTGRESIFACE2_H
00023 #define POSTGRESIFACE2_H
00024
00025 #include <qstring.h>
00026
00027 #ifdef DISTRO_DEBIAN
00028 #include <postgresql/libpq-fe.h>
00029 #elif DISTRO_RED_HAT
00030 #include <pgsql/libpq-fe.h>
00031 #elif DISTRO_GENTOO
00032 #include <postgresql/pgsql/libpq-fe.h>
00033 #elif DISTRO_NO_SE_QUE
00034 #include <no_se_que/pgsql/libpq-fe.h>
00035 #else
00036 #include <libpq-fe.h>
00037 #endif
00038
00039 #include "configuracion.h"
00040
00045 class cursor2 {
00046 private:
00048 QString nomcursor;
00050 PGresult *result;
00052 PGconn *conn;
00054 int registroactual;
00056 int nregistros;
00058 int ncampos;
00059
00060 public:
00062 cursor2(QString nombre, PGconn *conn1, QString SQLQuery);
00064 ~cursor2();
00066 int numregistros();
00068 QString valor(int posicion, int registro=-1);
00069 public:
00071 QString valor(QString campo, int registro=-1);
00073 int siguienteregistro();
00075 int registroanterior();
00077 int primerregistro();
00079 int ultimoregistro();
00081 int regactual () {return registroactual;};
00083 void cerrar();
00085 QString nomcampo(int);
00087 int numcampo(QString);
00089 int numcampos();
00091 bool eof();
00093 bool bof();
00095 bool esultimoregistro();
00097 bool esprimerregistro();
00098 };
00099
00100
00101 class postgresiface2 {
00102 private:
00103 QString pghost,
00104 pgport,
00105 pgoptions,
00106 pgtty;
00107 QString dbName;
00108 int nFields;
00109 PGconn *conn;
00110 int open;
00111 private:
00113 int formatofecha();
00114 public:
00116 postgresiface2();
00118 ~postgresiface2();
00120 int inicializa(QString nomdb, QString user="", QString passwd="");
00122 int begin();
00124 void commit();
00126 void rollback();
00128 cursor2 *cargacursor(QString Query, QString nomcursor="");
00130 int ejecuta(QString);
00132 int nuevoborrador(int idcuenta, int idasiento, QString concepto, QString descripcion, float debe, float haber, QString fecha, int idcontrapartida, int idtipoiva, int idccoste, int idcanal);
00133 int modificaborrador(int idborrador, int idcuenta, float idebe, float ihaber, QString concepto, QString fecha, int contrapartida, int idtipoiva, int idccoste, int idcanal);
00134 cursor2 *cargacuenta(int idcuenta, QString ccuenta="");
00135 cursor2 *cargaasiento(int idasiento);
00136 cursor2 *cargaapuntes(int tidasiento);
00137 cursor2 *cargaborradores(int tidasiento);
00138 cursor2 *cargacuentas(int padre);
00139 cursor2 *cargagrupos();
00140 cursor2 *cargasaldoscuentafecha(int , QString);
00141 cursor2 *cargaapuntesctafecha(int , QString, QString);
00142 cursor2 *cargacuentascodigo(int , QString, QString);
00143 cursor2 *cargaasientosfecha(QString, QString);
00144 int cierraasiento(int idasiento);
00145 int borrarasiento(int idasiento);
00146 int borrarborrador(int idborrador);
00147 int abreasiento(int idasiento);
00148 int borrarcuenta(int idcuenta);
00149 int modificacuenta(int idcuenta, QString desccuenta, QString codigo, bool cimputacion, bool cbloqueada, int idgrupo, bool cactivo, QString, QString, QString, QString, QString, QString, QString, QString, QString, int, bool, bool);
00150 int nuevacuenta(QString desccuenta, QString codigo, int padre, int idgrupo, QString, QString, QString, QString, QString, QString, QString, QString, QString, int, bool, bool);
00151 int nuevoasiento(QString nombre, QString fecha, int numasiento=0, int clase=1);
00153 int cargaempresa(QString nomempresa, QString login, QString password);
00155 cursor2 *cargaempresas();
00157 static QString sanearCadena(QString cadena);
00158 void terminar();
00159 QString propiedadempresa(QString );
00161 QString searchParent(QString);
00163 QString nameDB() {return dbName;};
00164 };
00165
00166 #endif