⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 database_op.h

📁 当前不少单位在进行系统改造升级时
💻 H
字号:
/*
	database_op.h
	
	负责兼容 sybase 和 oracle对数据库的操作
	  
		
 */



#define  ORACLE_PLATFORM




#ifdef SYBASE_PLATFORM
/*
 *	sybase  ,源代码基于sybase 编写,所以此处不需要额外的定义
 */	
	#include "sybfront.h"
	#include "sybdb.h"
	
	#pragma message("Here is SYBASE_PLATFORM !")




#else
/*
 *	oracle 
 */
	#ifdef ORACLE_PLATFORM

#include <sqlcpr.h>
#include <sqlda.h>
#include "SQLCA.h"


#ifdef __cplusplus
extern "C"{
#endif
	
typedef	void *DBVOIDPTR;


typedef void DBPROCESS ;
typedef void LOGINREC ;

typedef long  RETCODE ;
typedef char DBCHAR ;
typedef long	DBINT ;
typedef unsigned char BYTE;
typedef int STATUS ;

typedef RETCODE	(*DB_LRESPONSE_FUNC)();

#define	TRUE		(unsigned char)1
#define	FALSE		(unsigned char)0

#define	SUCCEED		(RETCODE)1
#define	FAIL		(RETCODE)0

#define NO_MORE_RESULTS 2
#define MORE_ROWS       -1
#define NO_MORE_ROWS    -2
#define REG_ROW         MORE_ROWS
#define BUF_FULL        -3

#define	INT_EXIT	0
#define	INT_CONTINUE	1
#define	INT_CANCEL	2
#define	INT_TIMEOUT	3

#define SQLDATALEN	4096

/*
#define NOBIND		-1
#define TINYBIND        1
#define SMALLBIND       2
#define INTBIND         3
#define CHARBIND        4
#define TEXTBIND        5
#define BINARYBIND      6
#define ARRAYBIND       7
#define BITBIND         8
#define DATETIMEBIND    9
#define MONEYBIND       10
#define FLT8BIND        11
#define STRINGBIND      12
#define NTBSTRINGBIND   13
#define VARYCHARBIND    14
#define VARYBINBIND     15
#define SMALLDATETIMEBIND       16
#define SMALLMONEYBIND  17
#define REALBIND        18
#define NUMERICBIND	19
#define DECIMALBIND	20
#define SENSITIVITYBIND	21
#define BOUNDARYBIND	22
 */
#define INTBIND         3
#define CHARBIND        4
#define NTBSTRINGBIND 13

/* Maximum number of select-list items or bind variables. */
#define MAXPOINTNUM	256





typedef unsigned char DBBOOL;
#define DBSAVE          1
#define DBNOSAVE        0

#define DBNOERR         -1

#define DBSETUSER       2
#define DBSETPWD        3
#define DBSETLUSER(a,b)         dbsetlname((a), (b), DBSETUSER)
#define DBSETLPWD(a,b)          dbsetlname((a), (b), DBSETPWD)
#define DBDEAD(a) dbdead(a)

typedef int (*EHANDLEFUNC) (DBPROCESS *dbproc, int severity,int dberr,int oserr,char *dberrstr,char *oserrstr);
typedef int (*MHANDLEFUNC) (DBPROCESS *dbproc, DBINT msgno, int msgstate,int severity,char *msgtext,char *srvname,char *procname, int line);

/*
 *	下列函数需要实现与sybase相似的语义!
 */

RETCODE dbinit		(void);

EHANDLEFUNC dberrhandle  (EHANDLEFUNC handler);
MHANDLEFUNC dbmsghandle  (MHANDLEFUNC handler);

LOGINREC *	dblogin (void);
RETCODE dbsetlname  (LOGINREC *lptr,char *name,int type);
DBPROCESS *dbopen	(LOGINREC *logon_ptr,char *servername);
void	dbloginfree (LOGINREC *loginptr);


RETCODE dbcmd		(DBPROCESS *dbproc,const char *cmdstring);
RETCODE dbsqlexec	(DBPROCESS *dbproc);
RETCODE dbresults	(DBPROCESS *dbproc);

RETCODE dbbind		(DBPROCESS *dbproc,int column,int vartype,DBINT varlen,BYTE *destvar);
int dbnumcols		(DBPROCESS *dbproc);
STATUS dbnextrow	(DBPROCESS *dbproc);

DBBOOL	dbdead		(DBPROCESS *a);

void dbexit			(void);
#ifdef __cplusplus
}
#endif
	

		#pragma message("Here is ORACLE_PLATFORM !")

	#else

		#ifdef MSSQL_PLATFORM
/*
 *	mssql
 */
			#include ".h"

			#pragma message("Here is MSSQL_PLATFORM !")

		#endif
	#endif
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -