数据库原理和应用9”.pptVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库原理和应用9”

访问数据库的程序 在现实中,直接通过SQL访问数据库的最终用户并不多,大多数用户仍然通过应用程序接口访问数据。 此外,非过程性的SQL语句能力有限,还有一些任务需要写一组SQL语句来读取不同的行,然后根据所读到的内容来更新其中的某些行,这时必须保证其他用户所做的修改不会破坏结果。我们需要将这一组SQL语句捆绑在特定的不可分割的包内,即事务。 嵌入式SQL是指在程序内执行的SQL语句,它强调这些SQL语句是“嵌入”在编程语言的常规语句中的。Java中标准的嵌入式SQL称为SQLJ,可以在ORACLE、INFORMIX、DB2 UDB中使用,也可以通过JDBC在Java中使用,JDBC是标准Java的一部分,用来连接任何数据库。我们将重点放在C语言编写的嵌入式SQL程序。 在本章中,我们将会碰到两种数据库系统的差别,即 oracle 和 db2 udb 5.1 C语言中嵌入SQL的介绍 关键词 exec sql声明SQL语句嵌入到宿主语言源文件中。 例如: exec sql select count(*) into : host_var from customers ; 注:1、exec sql可以扩展到该文件的多行。 2、在嵌入式SQL中使用宿主变量时必须 加(:) 例:假如字符串变量cust_id在C程序中被赋值 为“c001” exec sql select cname, discnt into : cust_name, :cust_discnt from customers where cid=:cust_id 则检索到顾客编号为c001的顾客的名字和折扣率,并将它们分别赋值给变量cust_name , cust_discnt 。 当然,要在嵌入式SQL中使用这些宿主变量,必须先声明它们,包括对预编译程序的声明。 exec sql begin declare section ; char cust_id[5]=“c001”; char cust_name[14]; float cust_discnt; exec sql end declare section; 这三个变量的声明是标准的C语言中的声明,出现在begin declare 和 end declare语句之间,这是预编译程序和C语言程序都能理解的相同的格式。嵌入式SQL中使用的宿主变量必须能被数据库系统识别。 在SQL中建立和释放数据库连接: 考虑怎样与数据库管理系统建立数据库连接。 在Full SQL-99中 连接到SQL数据库的语法: exec sql connect to target-server [as connect-name][user username] 或 exec sql connect to default target-server是目标数据库名,connect-name是对这次该数据库连接的一个名字,以后当再次使用是,可以直接引用它;username是该数据库的一个合法用户名。 connect to default是默认数据库的连接。 由于不同平台在用户识别、权限要求方面的可变性,connect语句并不是Entry SQL-92和Core SQL-99的一部分。 在ORACLE和DB2 UDB中,字符串常量通常不能直接作为connect语句的参数,我们需要首先声明: exec sql begin declare section ; char user_name[10],user_pwd[10]; exec sql end declare section; 设口令“1234” ,我们对上述变量初始化: strcpy(user_name,”cap”); strcpy(user_pwd,”1234”); 那么在DB2 中嵌入式SQL的Connect语句为: exec sql connect to cap : user_name using : user_pwd; 在ORACLE中嵌入式SQL的Connect语句为: exec sql connect : user_name

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档