sqc基础库使用手册 (2)_第1页
sqc基础库使用手册 (2)_第2页
sqc基础库使用手册 (2)_第3页
sqc基础库使用手册 (2)_第4页
sqc基础库使用手册 (2)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 tabname file line 返回 1 删除失败 1 表不存在 0 成功 db2DelAll 函数原形 int db2DelAll char tabname char file int line 用途 清空该表中的全部数据 参数 tabname 需要删除的表名 schema tabname file 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 行号 返回 errorLog 2memset 函数详细说明函数详细说明 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 被生成 10 ORDER BY 根据 Order by 子句 VT9 中的行被排序 生成游标 10 注意事项 第一步中 FROM 需要对两表同时存在的列添加前缀 以免混淆 第二步中 ON 在 SQL 特有的三值逻辑 true false unknown 中 unkown 的值也 是确定的 只是在不同情况下有时为 true 有时为 false 一个总的原则是 unknown 的值非真即假 非假即真 也就是时说 unknown 只能取 true 和 false 里面的一个值 但是 unknown 的相反还是 unknown 如 在 ON WHERE 和 HAVING 中做过滤条件时 unknown 看做 false 在 CHECK 约束中 unknown 被看做是 true 在条件中 两个 NULL 的比较结果还是 Unknown 在 UNIQUE 和 PRIMARY KEY 约束 排序和分组中 NULL 被看做是相等的 例如 Group by 将 null 分为一组 而 order by 将所有 null 排在一起 第三步中 OUTER 如果多余两张表 则将 VT3 和 FROM 中的下一张表再次执行从 第一步到第三步的过程 第四步中 WHERE 由于此刻没有分组 也没有执行 select 所以 where 子句中 不能写分组函数 也不能使用表的别名 并且 只有在外连接时 on 和 where 的逻辑才是不同的 因此建议连接条件放在 on 中 第五步中 GROUP BY 如果查询中包含 Group by 子句 那么所有的后续操作 having select 等 都是对每一组的结果进行操作 Group by 子句中可以使用组函数 在 Sql 2000 中一旦使用组函数 其后面的 步骤将都不能处理 而在 Sql2005 中没有这个限制 第六步不常用 略过 第七步中 HAVING having 表达式是仅有的分组条件 注意 count 不会忽略 掉 null 而 count

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论