当前位置:文档之家› sqc基础库使用手册

sqc基础库使用手册

SqcLib库接口定义新的sqc基础库采用c++封装,开发人员只需要从基础类Db2Tools派生自己的业务类。

然后重载基础类的busiLogic方法,就可以完成自己业务逻辑处理。

具体的处理流程为:1、在基础类Db2Tools的run方法中完成对具体应用参数的解析。

2、run方法调用busiLogic方法,完成具体的业务逻辑3、busiLogic方法中调用基础类的常用数据库访问方法,完成对数据库的操作。

4、在基础类的数据库访问方法中,除完成指定的数据库操作外,同时完成日志输出和相关事务控制。

[日志的输出目录为profile文件中定义的AGENTTRACEDIR目录,如果没有定义,取默认路径]1函数列表1.1数据库类(Db2Tools)该类有两个主要功能:1、实现数据库访问2、完成对具体业务逻辑调用和事务控制●connDb函数原形:int connDb(const char *m_para_conn)用途:连接数据库参数:m_para_conn:数据库名dbname返回:1.输入的数据库参数不对2.密码参数环境变量设置错误3.数据库连接失败0.数据库连接成功●busiLogic函数原形:int busiLogic(void)用途:业务逻辑入口参数:返回:●run函数原形:int run(int argc,char *argv[])用途:实例开始入口参数:argc:参数个数Argv:参数数组(通常取main函数入口参数)返回:0:成功,其它:失败●db2RunstatTab函数原形:int db2RunstatTab(char *tabname,char *file,int line)用途:对表做runstats参数:tabname:输入需要runstats的表名,schema.tabname或者tabname(schema默认为用户名)返回:-1:失败0:成功●db2Insert函数原形:int db2Insert(char *sqlstr,char *tabname,char *file,int line)用途:提交insert语句参数:sqlstr:insert sql语句file:line:返回:-1:失败0:成功●db2Update函数原形:int db2Update(char *sqlstr,char *tabname,char *file,int line)用途:提交update语句参数:sqlstr:update sql语句file:line:返回:-1:失败0:成功●db2Delete函数原形:int db2Delete(char *sqlstr,char *tabname,char *file,int line)用途:提交delete语句参数:sqlstr:delete sql语句file:line:返回:-1.失败0.成功●db2DropTab函数原形:int db2DropTab(char *tabname,char *file,int line)用途:删除表参数:tabname:需要删除的表名,schema.tabnamefile:line:返回:-1:删除失败1:表不存在0:成功●db2DelAll函数原形:int db2DelAll(char *tabname, char *file,int line)用途:清空该表中的全部数据参数:tabname:需要删除的表名,schema.tabnamefile:line:返回:-1:删除失败1:表不存在0:成功●db2CreTab函数原形:int db2CreTab(char *sqlstr,char *tabname,char *file,int line)用途:新建一张表参数:返回:-1:建表失败1:表已经存在0:建表成功●db2GrantTab函数原形:int db2GrantTab(char *user,char *tabname,char *file,int line)用途:表付权函数,只能付select权限,一次只能给一个用户或者组付权参数:返回:●dbRrefreshTab函数原形:int dbRrefreshTab(char *tabname,char *file,int line)用途:同步刷新表参数:返回:1.2日期类(DateFormat)完成读日期的各种运算●CdateFormat函数原形:CdateFormat (std::string pat)用途:构造函数参数:pat:输入日期的格式●getMonthRoll函数原形:string getMonthRoll(int interval)用途:获得输入月份偏移interval后的月份参数:interval:偏移量返回:返回yyyymm 格式的日期●getDateRoll函数原形:string getDateRoll(int intverval)用途:获得输入日期偏移interval后的日期参数:interval:偏移量返回:返回yyyymmdd格式的日期●getYearRoll函数原形:string getYearRoll(int intverval)用途:获得输入年偏移interval后的年份参数:interval:偏移量返回:返回yyyy格式的日期●setPattern函数原形:int setPattern(std::string strFormat)用途:指定输入日期值的格式(%Y%m%d, %Y-%m-%d)参数:strFormat:输入的日期格式返回:-1:执行失败0:执行成功●getPattern函数原形:string getPattern ( )用途:返回日期值的格式参数:strTime:输入的日期返回:-1:执行失败0:执行成功●dateParsing函数原形:int dateParsing(std::string strTime)用途:把表示时间的字符串strTime按pattern格式转换成tm结构的日期时间结构参数:strTime:输入的日期返回:-1:执行失败0:执行成功●getLastDay函数原形:string getLastDay ()用途:返回指定月份的最后一天参数:返回:返回yyyymmdd格式的日期●getFirstDay函数原形:string getFirstDay()用途:返回指定月份的第一天参数:返回:返回yyyymmdd格式的日期●getQuater函数原形:string getQuater ()用途:返回当前月份所在的季度参数:返回:季度(1、2、3、4)1.3日志类完成日志数据●writeLogTrace函数原形:int writeLogTrace(char *m_proname,int m_ddh,int m_rwh,int m_cmdstatus,char *promptMsg1,char *promptMsg2,char *file,int line,char *fpath)用途:写ss日志到指定目录下参数:●open_trace函数原形:int open_trace(char * tast_name)用途:打开trace文件参数:tast_name:程序名返回:TRACE_FD:会产生该全局变量,指向文件的指针1.4控制表类●synTab函数原形:int synTab(FILE *trace,char *sqlstr,char *tabname,char *file,int line)用途:向同步申请表中插入需要同步的表参数:trace:日志文件句柄sqlstr:同步sql语法tabname:需要同步的表名file:文件名line:行号返回:●writeSysLog函数原形:int writeSysLog(FILE *trace,int status,char *file,int line)用途:向统一通信表中插入程序成功失败日志参数:trace:日志文件句柄status:程序成功失败标识file:文件名line:行号返回:errorLog2memset函数详细说明1。

void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间s 的首n 个字节的值设为值c。

3。

memset() 函数常用于内存空间初始化。

如:char str[100];memset(str,0,100);4。

memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’;例:char a[100];memset(a, '\0', sizeof(a));memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。

5.补充:一点心得memset可以方便的清空一个结构类型的变量或数组。

2.1学习笔记---Sql语句的执行步骤及注意事项在以上的10个处理步骤中, 每一步的处理都生成一个虚拟表来作为下一步的输入. 虚拟表对于调用者或输出查询来说是不存在的, 仅在最后步骤生成的表才会返回给调用者或者输出查询. 如果某一子句没有出现在SQL语句中, 这一步就被简单跳过..这10个具体步骤是:1.FROM: from子句中的两个表首先进行交叉连接(笛卡尔积), 生成虚拟表VT1。

2.ON: on条件作用在VT1上, 将条件为True的行生成VT2。

3.OUTER: 如果outer join被指定, 则根据外连接条件, 将左表or右表or多表的未出现在VT2查询结果中的行加入到VT2后生成VT3。

4.WHERE: VT3表中应用Where条件, 结果为真的行用来生成VT4。

5.GROUP BY: 根据Group by指定的列, 将VT4的行组织到不同的组中, 生成VT5。

6.CLUB|ROLLUP: 超级组(分组之后的分组)被添加到VT5中, 生成VT6。

7.HAVING: Having用来筛选组, VT6上符合条件的组将用来生成VT7。

8.SELECT: select子句用来选择指定的列, 并生成VT8。

9.DISTINCT: 从VT8中删除重复的行后, VT9被生成。

相关主题