Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105820628
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820619
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820630
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820631
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820632
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820633
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820634
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820635
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820636
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820637
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820638
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820639
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820640
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820641
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820642
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820643
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820634
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820645
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820646
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820647
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820648
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820649
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820650
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820651
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820652
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820653
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820654
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820655
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820656
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820657
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820658
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820649
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820660
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820661
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820662
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820663
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820664
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820665
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820666
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820667
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820668
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820669
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820670
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820671
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820672
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820673
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820664
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820675
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820676
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820677
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820678
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks
DB2 9 应用开发(733 考试)认证指南,第 5 部分: CLI/ODBC 编程(7)-sdccf-ChinaUnix博客
  • 博客访问: 105820679
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 23:34:11

developerWorks


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303525) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303524) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303522) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303521) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303520) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303519) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303518) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303517) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303516) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303515) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303513) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303512) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303511) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303510) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303509) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303508) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303507) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303505) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303504) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303503) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303502) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303498) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303496) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303495) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303494) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303493) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303491) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303490) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303489) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303488) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303487) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303486) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303485) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303484) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303483) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303482) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303481) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303480) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303478) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303477) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303476) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303475) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


结束语

本教程的目的是介绍 CLI/ODBC 编程,并讲解开发 CLI/ODBC 应用程序的步骤。嵌入式 SQL 编程最大的缺点是开发的应用程序缺乏互操作性:专门为 DB2 开发的嵌入式 SQL 应用程序必须经过修改(在某些情况下甚至要完全重写)之后,才能与其他关系数据库管理系统(RDBMS)交互。由于每个嵌入式 SQL 应用程序都存在这样的限制,因此 X/Open Company 和 SAG(现在属于 X/Open)联合为可调用 SQL 接口开发了一个标准规范。这个接口被称为 X/Open CLI。在 1992,Microsoft 为 Microsoft Windows 操作系统开发了一个名为 Open Database Connectivity (ODBC) 的可调用 SQL 接口。ODBC 基于 X/Open CLI 标准规范,并提供了 X/Open CLI 所没有的扩展功能。DB2 的 Call Level Interface(也称 DB2 CLI)则基于 ISO CLI 国际标准,并提供了 ODBC 规范中具有的大多数功能。

所有 CLI/ODBC 应用程序都执行三种不同的任务:

  • 初始化
  • 事务处理
  • 终止

在初始化期间,主要工作是分配(并初始化)处理事务所需的资源,并建立到与事务处理任务存在交互的数据源的连接。CLI/ODBC 应用程序使用的资源由专用数据存储区组成,这些数据存储区由惟一的句柄标识。有 4 种不同类型的句柄:

  • 环境句柄: 指向一个数据存储区的指针,该数据存储区包含特定于 CLI/ODBC 的全局信息。

  • 连接句柄:指向一个数据存储区的指针,该数据存储区包含关于 CLI/ODBC 管理的数据源(数据库)连接的信息。

  • 语句句柄:指向指向数据存储区域的指针,该数据存储区包含单个 SQL 语句有关的特定信息。

  • 描述符句柄:指向一个数据存储区域的指针,该数据存储区包含一个元数据集合,这些元数据描述被绑定到 SQL 语句中的参数标记的应用程序变量,或者被绑定到查询结果数据集中列的应用程序变量。

每个 CLI/ODBC 应用程序必须从分配一个环境句柄开始。每个应用程序通常只分配一个环境句柄,在分配其他句柄之前,这个环境句柄必须已经存在。所有其他句柄都是在环境句柄的上下文中管理的。到数据源的连接通过用于处理 SQL 语句的连接句柄和语句句柄来建立。

要对一个数据库执行任何类型的操作,首先必须建立到那个数据库的连接。在 CLI/ODBC 应用程序中,有 3 个不同的函数可用于建立数据源(数据库)连接。这 3 个函数是:

  • SQLConnect()
  • SQLDriverConnect()
  • SQLBrowseConnect()

执行完适当的初始化,并且建立好数据库连接之后,重心就应该转移到处理事务上来。在事务处理期间,通过不同的 CLI/ODBC 函数调用将查询和操纵数据的 SQL 语句传递到适当的数据源(在这里主要是 DB2 数据库),以便进行处理。在事务处理期间,CLI/ODBC 应用程序依次执行以下 5 个步骤:

  1. 分配一个或多个语句句柄。
  2. 准备和执行一个或多个 SQL 语句。
  3. 检索和处理产生的结果。
  4. 通过提交或回滚终止当前事务。
  5. 释放分配的所有语句句柄。

由于一个 CLI/ODBC 应用程序可以连接到很多类型的数据源,因此有时候需要获取关于应用程序所连接到的特定数据源的信息。根据设计,所有 CLI/ODBC 驱动程序必须支持三个特定的函数,这些函数提供关于驱动程序本身功能以及驱动程序底层数据源功能的信息。通过使用这组函数,应用程序可以确定特定数据源的功能和限制,并相应地调整它的行为。第一个函数是 SQLGetInfo(),该函数用于获取关于一个数据库的不同特征的信息。第二个函数是 SQLGetFunctions(),该函数告诉应用程序一个数据源/驱动程序是否支持特定的 CLI/ODBC 函数。最后一个函数是 SQLGetTypeInfo(),该函数为应用程序提供关于数据源所使用的本地数据类型的信息。

SQLGetInfo()SQLGetFunctions()SQLGetTypeInfo() 函数所返回的信息是静态的 —— 也就是说,这三个函数返回的关于数据源/驱动程序的特征的信息不能通过调用应用程序来修改。不过,大多数数据源驱动程序还包括一些可以更改的信息,通过更改这些信息可以改变驱动程序对于特定应用程序的行为。这种信息被称为驱动程序属性,有三种类型的驱动程序属性可用:

  • 环境属性
  • 连接属性
  • SQL 语句属性

每当调用一个 CLI/ODBC 函数时,都会将一个特殊的值,即所谓的返回码,返回给调用的应用程序,以表明函数是否按预期执行。如果由于某种原因函数没有成功执行,那么生成的返回码的值就可以指示函数失败的原因。虽然返回码可以告诉应用程序是否遇到错误或警告,但是它不能为应用程序提供关于是什么导致错误或警告出现的具体信息。由于在解决一个问题时,通常还需要关于一个错误或警告的更多信息,因此 DB2 (以及其他关系数据库产品)使用一组错误消息码,即所谓的 SQLSTATE 来提供警告和错误的补充诊断信息。那么,当 CLI/ODBC 函数未能正确执行时,如何获取 SQLSTATE 值、诊断消息和本地错误代码呢?这些信息可以通过调用 SQLGetDiagRec() 函数、SQLGetDiagField() 函数或同时调用这两个函数获得。这两个函数接受一个环境句柄、连接句柄、语句句柄或描述符句柄作为输入,然后返回关于最近使用指定句柄执行的 CLI/ODBC 函数的诊断信息。

编写好一个 CLI/ODBC 源代码文件之后,必须使用适当的高级编程语言编译器(例如 GCC 或 Visual C++)对它进行编译。编译器负责将源代码文件转换成对象模块,之后,链接器就可以使用这个对象模块来创建一个可执行程序。链接器将对象文件与高级编程语言库组装起来,产生一个可执行的应用程序。对于大多数操作系统,这个应用程序是可以作为独立程序运行的一个可执行模块。但是,它也可能是可由另一个可执行模块使用的一个共享库或动态链接库。


阅读(303474) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~