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

📄 sybdblib.hpp

📁 液晶电视完整代码可实现人机界面
💻 HPP
字号:
/* *  Sybase DB-Library  * */#ifndef __SYBDBLIB_H_#define __SYBDBLIB_H_#include <string.h>#include <stdarg.h>#include <sybfront.h>#include <sybdb.h>#include <time.h>#ifndef BOOL    #define BOOL    int#endif#ifndef TRUE    #define TRUE    1    #define FALSE   0#endif#ifdef WIN32    #define vsnprintf _vsnprintf     // Win32 use _vsprintf#endif// 数据库操作信息typedef struct{        int  sqlcode;           // 最近的错误    char sqlerrtext[801];   // 最近的错误信息    char sqlsvrtext[801];   // 最近的服务器信息    int  sqlnrows;          // 最近操作的记录数} _SQLCA;extern _SQLCA sqlca;// 数据库服务器类class SybServer{public:    // 构造函数    SybServer(DBPROCESS * dbproc = NULL);    // 析构函数    ~SybServer();    // 设置输出文件    static void SetSybLogFile(FILE * pOutFile) { m_pSybLogFile = pOutFile; }    // 获取输出文件    static FILE * GetSybLogFile() { return m_pSybLogFile; }    // 输出日志信息    static void SybWriteLog(const char * sInfoStr,...);    // 检查环境初始化状态    static BOOL IsEnvInited() { return m_bEnvInited; }        // 连接数据库    BOOL Open(char * sServer,char * sUserName,char * sPassword);    // 连接到数据库?    BOOL IsOpened() { return m_dbproc!=(DBPROCESS *)NULL; }    // 获取数据库句柄    DBPROCESS * GetInstance() { return m_dbproc; }    // 断开数据库服务器    void Close();        // 切换数据库    BOOL SetWrkDb(char * sDatabase);    // 事务处理开始    BOOL BeginTrans();    // 提交事务处理    BOOL CommitTrans();    // 回滚事务处理    BOOL RollbackTrans();        // 清空结果集    void ClearAllResultSet();   private:    static BOOL m_bEnvInited;    // 数据库环境初始化?    static FILE * m_pSybLogFile; // 消息输出文件    static int m_nInstanceCount; // 数据库实例数    BOOL m_bAutoClose;           // 自动关闭数据库连接?    DBPROCESS * m_dbproc;        // 数据库连接句柄};// 列登记数据typedef struct{    int  nColId;                // 列号    char sColName[40];          // 列名    int  nColType;              // 列类型    int  nColLen;               // 列最大长度    int  nComputeId;            // 计算列编号} SybColumn;// 结果集类class SybResultset{public:    // 构造函数    SybResultset(SybServer & svr);    // 析构函数    ~SybResultset();    // 获取结果集    BOOL GetResultset();    // 绑定外部变量(nColId from 1 ..)        BOOL MapColumn(char * sColName, void * pColValue, int nColType = 0);    BOOL MapColumn(int nColId, void * pColValue, int nColType = 0, int nComputeId = 0);    // 获取返回记录    BOOL GetData();    // 当前行数据是计算列行?    BOOL IsComputeRow();    // 获取存储过程返回参数(nRetId from 1..)    BOOL GetProcRetParam(int nRetId,void * pRetValue,int nRetType = 0);    BOOL GetProcRetParam(char * sRetName,void * pRetValue,int nRetType = 0);        // 返回记录数    int GetRowCount() { return m_nRowCount; }    // 返回列数    int GetColCount() { return m_nColCount; }    // 获取返回参数数    int GetRetCount() { return m_nRetCount; }    // 获取返回状态    int GetRetStatus() { return m_nRetStatus; }    // 有返回状态?    BOOL HasRetStatus() { return m_bHasRetStatus; }    // 获取列信息(nIndex from 0..)    SybColumn * GetColumn(int nIndex);    // 获取返回参数信息    SybColumn * GetRetParam(int nIndex);private:    SybServer * m_pSybSvr;      // 数据库实例    int m_nRowCount;            // 影响的记录数     int m_nColCount;            // 返回的列数    int m_nRetCount;            // 存储过程返回参数数    BOOL m_bHasRetStatus;       // 存储过程有返回状态?    int m_nRetStatus;           // 存储过程返回状态    SybColumn * m_pColumns;     // 列登记信息    SybColumn * m_pRetParams;   // 返回参数信息};// 数据库命令类class SybCommand{public:    // 构造函数    SybCommand(SybServer & svr, int nMaxResultsetCount = 255);    // 析构函数    ~SybCommand();    // 执行命令 >0 记录数 =0 没记录 <0 失败    int Execute(char * sSqlcmd);           // 绑定外部变量    BOOL MapColumn(char * sColName, void * pColValue, int nColType = 0);    BOOL MapColumn(int nColId, void * pColValue, int nColType = 0, int nComputeId = 0);    // 获取数据    BOOL GetData();    // 检查有其他结果集?    BOOL HasNextResultSet();        // 当前行数据是计算列行?    BOOL IsComputeRow();    // 获取存储过程返回参数    BOOL GetProcRetParam(int nRetId,void * pRetValue,int nRetType = 0);    // 获取结果集数    int GetResultsetCount() { return m_nResultsetCount; }    // 获取结果集    SybResultset * GetResultset(int nIndex);        // 执行定制的命令    int Select(char * sSelectStr);    int Update(char * sUpdateStr);    int Delete(char * sDeleteStr);    int Insert(char * sInsertStr);        // 选取一条记录    int GetLastRecord(char * sSqlcmd,...);    // ... = void * pVarAddr,int nType =0, ...private:    SybServer * m_pSybSvr;                  // 数据库实例    int m_nResultsetCount;                  // 结果集数目    int m_nMaxResultsetCount;               // 最大结果集数    SybResultset ** m_Results;              // 结果集};// 远程存储过程类class SybStoredProc{public:    // 构造函数    SybStoredProc(SybServer & svr, int nMaxResultsetCount = 255);    // 析构函数    ~SybStoredProc();    // 准备存储过程    BOOL SetProcName(char * sProcName);    // 设置存储过程参数 nLen = 0,Param is NULL, nLen = -1,Params is FixedSize    BOOL SetInParam(char * sParamName,BYTE * pParamAddr,int nType,int nLen);    BOOL SetOutParam(char * sParamName,BYTE * pParamAddr,int nType,int nLen);    // 执行存储过程    int ExecProc();    // 绑定外部变量    BOOL MapColumn(char * sColName, void * pColValue, int nColType = 0);    BOOL MapColumn(int nColId, void * pColValue, int nColType = 0, int nComputeId = 0);    // 获取数据    BOOL GetData();    // 检查有其他结果集?    BOOL HasNextResultSet();        // 当前行数据是计算列行?    BOOL IsComputeRow();    // 获取存储过程返回参数    BOOL GetProcRetParam(int nRetId,void * pRetValue,int nRetType = 0);    BOOL GetProcRetParam(char * sRetName,void * pRetValue,int nRetType = 0);    // 获取结果集数    int GetResultsetCount() { return m_nResultsetCount; }    // 获取结果集    SybResultset * GetResultset(int nIndex);    private:    SybServer * m_pSybSvr;                  // 数据库实例    int m_nResultsetCount;                  // 结果集数目    int m_nMaxResultsetCount;               // 最大结果集数    SybResultset ** m_Results;              // 结果集    };// 游标操作类class SybCursor{public:    // 构造函数    SybCursor(SybServer & svr);    // 析构函数    ~SybCursor();    // 设置游标选项    void SetOptions(int nCursorType,int nLockType = CUR_OPTCC, int nMaxRow = 1);    // 打开游标    int Open(char * sSelectStr);    // 关闭游标    void Close();    // 绑定变量    BOOL MapColumn(int nColId, int nBindType, void * pColValue, int nMaxLen);    // 移动游标    BOOL GoTop();    BOOL GoBottom();    BOOL GoRow(int nRow);    BOOL Next(int nRow = 1);    BOOL Prev(int nRow = 1);private:    SybServer * m_pSybSvr;                  // 数据库实例    DBCURSOR  * m_cursor;                   // 游标实例    DBINT * m_pStatus;                      // 处理状态    int  m_nCursorType;                     // 游标类型    int  m_nLockType;                       // 游标锁类型    int  m_nMaxRow;                         // 游标最大记录数/次};#endif

⌨️ 快捷键说明

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