📄 icallablestatement.h
字号:
/**
* ICallableStatement.h
*
* @author aizy
* @date 2004-11-24
*/
#ifndef _DB_ICALLABLE_STATEMENT_H_
#define _DB_ICALLABLE_STATEMENT_H_
#include <string>
#include "Date.h"
#include "Time.h"
#include "Timestamp.h"
namespace db {
/**
* 数据类型定义
*/
enum DataType {
DT_NULL,
DT_STRING,
DT_FLOAT,
DT_INT,
DT_DATE,
DT_TIME,
DT_TIMESTAMP
};
enum ParamType {
PT_NULL,
PT_IN,
PT_OUT,
PT_IN_OUT
};
struct ParamStruct {
ParamType paramType;
db::DataType dataType;
std::string paramName;
std::string paramValue;
};
/**
* ICallableStatement
* 存储过程调用接口
*/
class ICallableStatement {
protected:
virtual ~ICallableStatement(){};
public:
/**
* 执行存储过程
*
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void Execute() = 0;
/**
* 关闭内部资源
* 注意:该函数内部需要释放ICallableStatement实例
*/
virtual void Close() = 0;
//-------------------------设置输入参数-----------------------------//
/**
* 设置字符串输入参数
*
* @index 参数位置
* @value 参数值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void SetString(int index, const std::string &value) = 0;
/**
* 设置浮点数输入参数
*
* @index 参数位置
* @value 参数值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void SetFloat(int index, float value) = 0;
/**
* 设置整数输入参数
*
* @index 参数位置
* @value 参数值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void SetInt(int index, int value) = 0;
/**
* 获取日期类型数据
*
* @index 参数位置
* @value 返回值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void SetDate(int index, Date &value) = 0;
/**
* 设置时间类型数据
*
* @index 参数位置
* @value 返回值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void SetTime(int index, Time &value) = 0;
/**
* 设置时间戳类型数据
*
* @index 参数位置
* @value 返回值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void SetTimestamp(int index, Timestamp &value) = 0;
/**
* 注册输出参数
*
* @index 参数位置
* @value 参数值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual void RegisterOutParameter(int index, DataType type) = 0;
//-------------------------取数据----------------------------//
/**
* 获取字符串类型数据
*
* @index 参数位置
* @value 返回值
* @return true 有值
* false 空值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual bool GetString(int index, std::string &value) = 0;
/**
* 获取浮点数类型数据
*
* @index 参数位置
* @value 返回值
* @return true 有值
* false 空值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual bool GetFloat(int index, float &value) = 0;
/**
* 获取整数类型数据
*
* @index 参数位置
* @value 返回值
* @return true 有值
* false 空值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual bool GetInt(int index, int &value) = 0;
/**
* 获取日期类型数据
*
* @index 参数位置
* @value 返回值
* @return true 有值
* false 空值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual bool GetDate(int index, Date &value) = 0;
/**
* 获取时间类型数据
*
* @index 参数位置
* @value 返回值
* @return true 有值
* false 空值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual bool GetTime(int index, Time &value) = 0;
/**
* 获取时间戳类型数据
*
* @index 参数位置
* @value 返回值
* @return true 有值
* false 空值
* @throw SqlException 数据库访问错误时抛出该异常
*/
virtual bool GetTimestamp(int index, Timestamp &value) = 0;
};
}
#endif //_DB_ICALLABLE_STATEMENT_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -