43 lines
1.5 KiB
C++
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
|
|
|