Mattia Tollari 9520fe2efd Patch level : 12.0 598
Files correlati     : cg, ve, ba, fp
Commento            : Prima release del modulo fp

BA:
- Aggiunto campo "Modalità di Pagamento" alla tabella "Ulteriore classificazione"
- Aggiunto campo "Tipo di pagamento SDI" al programma di gestione dei tipi pagamento

CG:
Modifiche programma clienti/fornitori:
- Rinominato gruppo da "Numeri telefonici" a "Contatti"
- Spostati e modificati campi delle email per aggiungere la PEC

Modifiche cgpagame:
- Aggiunto _cond_pag e gestione del campo

VE:
Modifiche ai tipidoc
- Aggiunto tipo documenti SDI
- Aggiunto il regime fiscale

FP:
- prima implementazione del modulo

Interne:
- In applicat rimosso blocco in caso di programma non abilitato per rangers
- Aggiunto in modaut il nuovo programma fp
- Resa cid2index static con metodo in xvtility
- Perfezionata libreria tsdb + xvtdb grazie ai test fatti da me medesimo per l'fp
2018-07-06 16:30:37 +02:00

291 lines
10 KiB
C++

// pgAPI.h
//
//////////////////////////////////////////////////////////////////////
#if !defined(__PGAPI_H__)
#define __PGAPI_H__
#include "SQLAPI.h"
// API header(s)
#include <libpq-fe.h>
#include <libpq-fs.h>
extern void AddPostgreSQLSupport(const SAConnection *pCon);
extern void ReleasePostgreSQLSupport();
typedef PGconn* (*PQconnectStart_t)(const char *conninfo);
typedef PostgresPollingStatusType (*PQconnectPoll_t)(PGconn *conn);
typedef PGconn* (*PQconnectdb_t)(const char *conninfo);
typedef PGconn* (*PQsetdbLogin_t)(const char *pghost, const char *pgport, const char *pgoptions, const char *pgtty,
const char *dbName,
const char *login, const char *pwd);
typedef void (*PQfinish_t)(PGconn *conn);
typedef PQconninfoOption* (*PQconndefaults_t)(void);
typedef void (*PQconninfoFree_t)(PQconninfoOption *connOptions);
typedef int (*PQresetStart_t)(PGconn *conn);
typedef PostgresPollingStatusType (*PQresetPoll_t)(PGconn *conn);
typedef void (*PQreset_t)(PGconn *conn);
typedef int (*PQrequestCancel_t)(PGconn *conn);
typedef PGcancel* (*PQgetCancel_t)(PGconn *conn);
typedef void (*PQfreeCancel_t)(PGcancel *cancel);
typedef int (*PQcancel_t)(PGcancel *cancel, char *errbuf, int errbufsize);
typedef int (*PQserverVersion_t)(const PGconn *conn);
typedef char* (*PQdb_t)(const PGconn *conn);
typedef char* (*PQuser_t)(const PGconn *conn);
typedef char* (*PQpass_t)(const PGconn *conn);
typedef char* (*PQhost_t)(const PGconn *conn);
typedef char* (*PQport_t)(const PGconn *conn);
typedef char* (*PQtty_t)(const PGconn *conn);
typedef char* (*PQoptions_t)(const PGconn *conn);
typedef ConnStatusType (*PQstatus_t)(const PGconn *conn);
typedef char* (*PQerrorMessage_t)(const PGconn *conn);
typedef int (*PQsocket_t)(const PGconn *conn);
typedef int (*PQbackendPID_t)(const PGconn *conn);
typedef int (*PQclientEncoding_t)(const PGconn *conn);
typedef int (*PQsetClientEncoding_t)(PGconn *conn, const char *encoding);
#ifdef USE_SSL
typedef SSL* (*PQgetssl_t)(PGconn *conn);
#endif
typedef void (*PQtrace_t)(PGconn *conn, FILE *debug_port);
typedef void (*PQuntrace_t)(PGconn *conn);
typedef PQnoticeProcessor (*PQsetNoticeProcessor_t)(PGconn *conn, PQnoticeProcessor proc, void *arg);
typedef PGresult* (*PQexec_t)(PGconn *conn, const char *query);
typedef PGnotify* (*PQnotifies_t)(PGconn *conn);
typedef int (*PQsendQuery_t)(PGconn *conn, const char *query);
typedef PGresult* (*PQgetResult_t)(PGconn *conn);
typedef int (*PQisBusy_t)(PGconn *conn);
typedef int (*PQconsumeInput_t)(PGconn *conn);
typedef int (*PQgetline_t)(PGconn *conn, char *string, int length);
typedef int (*PQputline_t)(PGconn *conn, const char *string);
typedef int (*PQgetlineAsync_t)(PGconn *conn, char *buffer, int bufsize);
typedef int (*PQputnbytes_t)(PGconn *conn, const char *buffer, int nbytes);
typedef int (*PQendcopy_t)(PGconn *conn);
typedef int (*PQsetnonblocking_t)(PGconn *conn, int arg);
typedef int (*PQisnonblocking_t)(const PGconn *conn);
typedef int (*PQflush_t)(PGconn *conn);
typedef PGresult* (*PQfn_t)(PGconn *conn, int fnid,
int *result_buf,
int *result_len,
int result_is_int,
const PQArgBlock *args,
int nargs);
typedef ExecStatusType (*PQresultStatus_t)(const PGresult *res);
typedef char* (*PQresStatus_t)(ExecStatusType status);
typedef char* (*PQresultErrorMessage_t)(const PGresult *res);
typedef int (*PQntuples_t)(const PGresult *res);
typedef int (*PQnfields_t)(const PGresult *res);
typedef int (*PQbinaryTuples_t)(const PGresult *res);
typedef char* (*PQfname_t)(const PGresult *res, int field_num);
typedef int (*PQfnumber_t)(const PGresult *res, const char *field_name);
typedef int (*PQfformat_t)(const PGresult *res, int field_num);
typedef Oid (*PQftype_t)(const PGresult *res, int field_num);
typedef int (*PQfsize_t)(const PGresult *res, int field_num);
typedef int (*PQfmod_t)(const PGresult *res, int field_num);
typedef char* (*PQcmdStatus_t)(PGresult *res);
typedef char* (*PQoidStatus_t)(const PGresult *res); /* old and ugly */
typedef Oid (*PQoidValue_t)(const PGresult *res); /* new and improved */
typedef char* (*PQcmdTuples_t)(PGresult *res);
typedef char* (*PQgetvalue_t)(const PGresult *res, int tup_num, int field_num);
typedef int (*PQgetlength_t)(const PGresult *res, int tup_num, int field_num);
typedef int (*PQgetisnull_t)(const PGresult *res, int tup_num, int field_num);
typedef void (*PQclear_t)(PGresult *res);
typedef PGresult* (*PQmakeEmptyPGresult_t)(PGconn *conn, ExecStatusType status);
typedef void (*PQprint_t)(FILE *fout, /* output stream */
const PGresult *res,
const PQprintOpt *ps); /* option structure */
typedef void (*PQdisplayTuples_t)(const PGresult *res,
FILE *fp, /* where to send the
* output */
int fillAlign, /* pad the fields with
* spaces */
const char *fieldSep, /* field separator */
int printHeader, /* display headers? */
int quiet);
typedef void (*PQprintTuples_t)(const PGresult *res,
FILE *fout, /* output stream */
int printAttName, /* print attribute names */
int terseOutput, /* delimiter bars */
int width); /* width of column, if
* 0, use variable width */
typedef int (*lo_open_t)(PGconn *conn, Oid lobjId, int mode);
typedef int (*lo_close_t)(PGconn *conn, int fd);
typedef int (*lo_read_t)(PGconn *conn, int fd, char *buf, size_t len);
typedef int (*lo_write_t)(PGconn *conn, int fd, const char *buf, size_t len);
typedef int (*lo_lseek_t)(PGconn *conn, int fd, int offset, int whence);
typedef Oid (*lo_creat_t)(PGconn *conn, int mode);
typedef int (*lo_tell_t)(PGconn *conn, int fd);
typedef int (*lo_unlink_t)(PGconn *conn, Oid lobjId);
typedef Oid (*lo_import_t)(PGconn *conn, const char *filename);
typedef int (*lo_export_t)(PGconn *conn, Oid lobjId, const char *filename);
typedef int (*PQmblen_t)(const char *s, int encoding);
typedef int (*PQenv2encoding_t)(void);
// new
typedef PGVerbosity (*PQsetErrorVerbosity_t)(PGconn *conn, PGVerbosity verbosity);
typedef char* (*PQresultErrorField_t)(const PGresult *res, int fieldcode);
// escape
typedef size_t (*PQescapeStringConn_t)(PGconn *conn,
char *to, const char *from, size_t length,
int *error);
typedef unsigned char* (*PQescapeByteaConn_t)(PGconn *conn,
const unsigned char *from, size_t from_length,
size_t *to_length);
typedef unsigned char* (*PQunescapeBytea_t)(const unsigned char *strtext,
size_t *retbuflen);
/* These forms are deprecated! */
typedef size_t (*PQescapeString_t)(char *to, const char *from, size_t length);
typedef unsigned char* (*PQescapeBytea_t)(const unsigned char *from, size_t from_length,
size_t *to_length);
typedef void (*PQfreemem_t)(void *ptr);
typedef int (*PQputCopyData_t)(PGconn *conn, const char *buffer, int nbytes);
typedef int (*PQputCopyEnd_t)(PGconn *conn, const char *errormsg);
typedef int (*PQgetCopyData_t)(PGconn *conn, char **buffer, int async);
typedef PGPing (*PQping_t)(const char *conninfo);
typedef PGPing (*PQpingParams_t)(const char *const * keywords,
const char *const * values, int expand_dbname);
typedef const char* (*pg_encoding_to_char_t)(int encoding);
// API declarations
class SQLAPI_API pgAPI : public saAPI
{
public:
pgAPI();
PQconnectStart_t PQconnectStart;
PQconnectPoll_t PQconnectPoll;
PQconnectdb_t PQconnectdb;
PQsetdbLogin_t PQsetdbLogin;
PQfinish_t PQfinish;
PQconndefaults_t PQconndefaults;
PQconninfoFree_t PQconninfoFree;
PQresetStart_t PQresetStart;
PQresetPoll_t PQresetPoll;
PQreset_t PQreset;
PQrequestCancel_t PQrequestCancel;
PQgetCancel_t PQgetCancel;
PQfreeCancel_t PQfreeCancel;
PQcancel_t PQcancel;
PQserverVersion_t PQserverVersion;
PQdb_t PQdb;
PQuser_t PQuser;
PQpass_t PQpass;
PQhost_t PQhost;
PQport_t PQport;
PQtty_t PQtty;
PQoptions_t PQoptions;
PQstatus_t PQstatus;
PQerrorMessage_t PQerrorMessage;
PQsocket_t PQsocket;
PQbackendPID_t PQbackendPID;
PQclientEncoding_t PQclientEncoding;
PQsetClientEncoding_t PQsetClientEncoding;
#ifdef USE_SSL
PQgetssl_t PQgetssl;
#endif
PQtrace_t PQtrace;
PQuntrace_t PQuntrace;
PQsetNoticeProcessor_t PQsetNoticeProcessor;
PQexec_t PQexec;
PQnotifies_t PQnotifies;
PQsendQuery_t PQsendQuery;
PQgetResult_t PQgetResult;
PQisBusy_t PQisBusy;
PQconsumeInput_t PQconsumeInput;
PQgetline_t PQgetline;
PQputline_t PQputline;
PQgetlineAsync_t PQgetlineAsync;
PQputnbytes_t PQputnbytes;
PQendcopy_t PQendcopy;
PQsetnonblocking_t PQsetnonblocking;
PQisnonblocking_t PQisnonblocking;
PQflush_t PQflush;
PQfn_t PQfn;
PQresultStatus_t PQresultStatus;
PQresStatus_t PQresStatus;
PQresultErrorMessage_t PQresultErrorMessage;
PQntuples_t PQntuples;
PQnfields_t PQnfields;
PQbinaryTuples_t PQbinaryTuples;
PQfname_t PQfname;
PQfnumber_t PQfnumber;
PQfformat_t PQfformat;
PQftype_t PQftype;
PQfsize_t PQfsize;
PQfmod_t PQfmod;
PQcmdStatus_t PQcmdStatus;
PQoidStatus_t PQoidStatus;
PQoidValue_t PQoidValue;
PQcmdTuples_t PQcmdTuples;
PQgetvalue_t PQgetvalue;
PQgetlength_t PQgetlength;
PQgetisnull_t PQgetisnull;
PQclear_t PQclear;
PQmakeEmptyPGresult_t PQmakeEmptyPGresult;
PQprint_t PQprint;
PQdisplayTuples_t PQdisplayTuples;
PQprintTuples_t PQprintTuples;
lo_open_t lo_open;
lo_close_t lo_close;
lo_read_t lo_read;
lo_write_t lo_write;
lo_lseek_t lo_lseek;
lo_creat_t lo_creat;
lo_tell_t lo_tell;
lo_unlink_t lo_unlink;
lo_import_t lo_import;
lo_export_t lo_export;
PQmblen_t PQmblen;
PQenv2encoding_t PQenv2encoding;
// new 3.7.12
PQsetErrorVerbosity_t PQsetErrorVerbosity;
PQresultErrorField_t PQresultErrorField;
// escape
PQescapeStringConn_t PQescapeStringConn;
PQescapeByteaConn_t PQescapeByteaConn;
PQunescapeBytea_t PQunescapeBytea;
// These forms are deprecated!
PQescapeString_t PQescapeString;
PQescapeBytea_t PQescapeBytea;
PQfreemem_t PQfreemem;
PQputCopyData_t PQputCopyData;
PQputCopyEnd_t PQputCopyEnd;
PQgetCopyData_t PQgetCopyData;
PQping_t PQping;
PQpingParams_t PQpingParams;
pg_encoding_to_char_t pg_encoding_to_char;
};
class SQLAPI_API pgConnectionHandles : public saConnectionHandles
{
public:
pgConnectionHandles();
PGconn *conn; // PostgreSQL connection struct
};
class SQLAPI_API pgCommandHandles : public saCommandHandles
{
public:
pgCommandHandles();
PGresult *res; // PostgreSQL result struct
};
extern pgAPI g_pgAPI;
#endif // !defined(__PGAPI_H__)