Files
MermsEmrWeb/mermsemr/src/include/pgsql_wrapper.h
T
2019-02-19 22:35:27 +00:00

43 lines
1.5 KiB
C++

#ifndef __PGSQL_WRAPPER_H__
#define __PGSQL_WRAPPER_H__
#include "exceptions.h"
enum { DBS_ALL=0, DBS_VALID=1, DBS_STREAM=2 };
class CEscape;
#define NEED_ESC CEscape __esc( cmd );
#define esc( param ) __esc.Escape( param )
#define ESCAPE_MAX_VARS 50
void map_to_cvars(map<const char *,const char *>f, CVars &rec);
void load_db_record( const char * table, CVars &rec, const char * where, ... );
long load_db_record( CVars &rec, const char * query, ... );
long insert_db_record( int mode, const char *table, const char *seq, CVars &rec );
void update_db_record( int mode, const char * table, CVars &rec, long id, const char * where=NULL, ... ) throw ( bad_parameter );
void v_update_db_record( int mode, const char * table, CVars &rec, const char *index, long id, const char * where=NULL, va_list ap=NULL ) throw ( bad_parameter );
void update_db_record( int mode, const char * table, CVars &rec, const char *index, long id, const char * where=NULL, ... ) throw ( bad_parameter );
long curr_val( const char *seq );
class CEscape
{
public:
char * New( int sz );
CEscape( char * st );
~CEscape();
char * Escape( const char * param );
private:
char * vars[ESCAPE_MAX_VARS];
int n;
char * st;
char esc[1000];
int EscapeLength( const char * par ); // Calculate the required buffer size for escaped par
char *EscapeReal( const char * cmd, char * _esc=NULL, int sz=0 ); // Escape a string for SQL server
};
#endif