将InfrmiESQL应用程序迁移到B2.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
将InfrmiESQL应用程序迁移到B2.doc

将Informix ESQL/C应用程序迁移到DB2 本文档讲述数据库嵌入式SQL/C程序从ESQLC向DB2迁移过程屮所进行的分析、迁移 过程。 一、IDS与DB2嵌入式SQL差异性分析 本部分主要对IBM Informix Dynamic Server(简称为IDS)与DB2的嵌入式SQL基本语法、 SQL通信区和游标和高级操作几个方而进行分析,列!II其不同之处。 (一)基本语法 扩展名 IDS应用程序的扩展名为“.ec”,而DB2的扩展为“.sqc”,应将程序的扩展名修改为 “.sqc”。 SQL语句 SQL语句都必须加前缘EXEC SQL,以(;)结束成为一个程序片断: EXEC SQL SQL 语句; IDS和DB2都支持此种语法,且DB2仅支持此种语法,但IDS同时也支持将EXEC SQL换为字 符“$”,故要对程序巾的所有使用“$”的语句修改为EXEC SQL。 备注: 所有的SQL语句都是不区分人小写,包括EXECSQL,故不对SQL语句的大小进行分析。 主变量 按照 ANSI 标准主变量必须在 SQL 记?句 BEGIN DECLARE SECTION 勹 END DECLARE SECTION 之间进行定义,定义之后可以在SQL语句中使用,为了与数据库对象名(表名、视图名、 列名等)区别,SQL语句中的主变量名前要加冒号(:)作为标志。 IDS和DB2都支持此种语法,.ft DB2仅支持此种语法,侃IDS同时也支持声明主变量方式为: $int a; EXEC SQL int b; 但IDS同时也支持在SQL语句中使用“$”来替换(:),如: EXEC SQL SELECT CUNM FROM EVIAA WHERE ACNO = $sACNO; 故要将程序中以上三种方式修改为标准方式。 字符串 IDS同时支持双引号和单引号字符串,但DB2只支持单引号字符串,则需要用单引号 字符串替换双引号字符串。 例如需要将 EXEC SQL SELECT * FROM tabl WHERE color = pred; 修改为: EXEC SQL SELECT * FROM tabl WHERE color = pred1; 模糊查询 IDS同时支持关键字like和MATCHES,两个关键字对应的多个字符和单个字符的匹配分 别为%、_和*、?。若使用MATCHES,则需要对字符*?进行转义。 IDS屮对字符串进行截収或匹配支持使川关键字str[a,b],其屮a为起始字符串下标(序 号从1开始),b为要截取字符串的结束K标;这种使用方式耑要修改为like (where条件中) 和SUbStr(StGnl,n2,其中参数str为要取的字段名,nl为起始字符串下标(序号从1开始), n2为需要截取字符串的个数,即n2 = b-a+lo 将所有存在的UNIQUE关键字都替换成DISTINCT关键字。 (二)高级SQL操作 数据库连接 IDS使用如卜语句來建立数据痺(cmbc)连接: EXEC SQL database cmbc; 使用如下语句来断开数据库连接: EXEC SQL database close; DB2使用如下语句來建立数据库(cmbc)连接 EXEC SQL CONNECT TO cmbc; 如果要使用特定的用户标识(name)和密码(pwd),则使用如下语句: EXEC SQL CONNECT TO sample USER name USING pwd; 断开数据库cmbc连接: EXEC SQL CONNECT RESET; 故要将程序中以上三种方式修改为标准方式。 事务操作 IDS中语法 打开事务:EXEC SQL GEGIN WORK; 提交事务:EXEC SQL COMMIT WORK; 回滚事务:EXEC SQL RALLBACK WORK; DB2中语法 打开事务:自动打开 提交事务:EXEC SQL COMMIT WORK;(或 EXEC SQL COMMIT;) 回滚事务:EXEC SQL RALLBACK WORK;(或 EXEC SQL RALLBACK;) 游标操作 游秘基本语法,游秘名字为mycursor 定义游标: EXEC SQL DECLARE mycursor CURSOR FOR SELECT * FROM staff WHERE id = 310; 打开游标: EXEC SQL OPEN mycursor; Fetch游标: EXEC SQL FETCH mycursor INTO :id,:name,:dept,:job:joblnd; 关闭游标: EXEC SQL CLOSE mycursor; 释放游标: EXEC SQL FREE mycursor; 在IDS中游标需

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档