【数据库设计与开发】数据库应用程序体系结构

【数据库设计与开发】数据库应用程序体系结构

ID:40103486

大小:200.00 KB

页数:47页

时间:2019-07-21

【数据库设计与开发】数据库应用程序体系结构_第1页
【数据库设计与开发】数据库应用程序体系结构_第2页
【数据库设计与开发】数据库应用程序体系结构_第3页
【数据库设计与开发】数据库应用程序体系结构_第4页
【数据库设计与开发】数据库应用程序体系结构_第5页
资源描述:

《【数据库设计与开发】数据库应用程序体系结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.数据库应用程序体系结构数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、DBA、用户组成。本章介绍数据库应用程序的数据访问与数据库应用系统的体系结构。3.1嵌入式SQL3.2事务处理技术3.3数据库应用系统体系结构3.4中间件郭文明2003.06.053.1嵌入式SQL为什么使用嵌入式SQL?—有些数据访问任务对于交互式的非过程的SQL是无法完成的任务。—使用交互式SQL,必须知道表名、列名并且能够写出符合语法的SQL语句。—实际的应用系统是非常复杂的,数据库访问只是其中一个部件。有些动作如与用户交互、图形化显示数据等只能用高级语言实现。嵌入到

2、过程性主语言中使用的SQL称为嵌入式SQL。主语言可以是C或Java(不一定是Windows环境).也可以是VisualBasic,Delphi(Windows环境)等。ORACLE的Pro*C即是使用嵌入式SQL的平台。郭文明2003.06.053.1嵌入式SQL把SQL嵌入主语言使用时必须解决的三个问题:1.区分SQL语句与主语言语句,用EXECSQL开始.2.数据库工作单元和程序工作单元之间的通信.SQL语句可以使用主语言的程序变量(简称主变量),这些变量名前加冒号(:)作标志,以区别于字段名。这些变量由BEGINDECLARESECTION与ENDDECLARESECTION语

3、句之间说明.主语言中不能引用数据库中的字段变量.SQL语句执行后,系统要反馈给应用程序若干信息,这些信息送到SQL的通信区SQLCA。SQLCA用语句EXECSQLINCLUDE加以定义。3.一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式。这是用游标来解决的。郭文明2003.06.053.1嵌入式SQL主语言+嵌入SQL预处理主语言+函数调用主语言编译器主语言执行程序预处理器把嵌入的SQL语句从主程序命令中分离出来,转换成相应的主语言语句.例:1.UNIX环境下,程序员创建包含SQL的main.pc的源程序.2.Oracle程序员调用预

4、编译器:prociname=main.pc生成main.c,其中SQL语句被纯c语句(Orcale运行期库函数)替换.3.主语言编译cc-cmain.c,生成main.o目标文件.4.连编生成可执行文件.嵌入式SQL的执行郭文明2003.06.053.1.1C语言中嵌入式SQL#include#include“prompt.h”execsqlincludesqlca;/*声明通讯区*/charcid_prompt[]=“请输入顾客号:”;intmain(){execsqlbegindeclaresection;charcust_id[5],cust_name[14];

5、floatcust_discnt;charuser_name[20],user_ped[20];execsqlenddeclaresection;/*声明变量*/execsqlwheneversqlerrorgotoreport_error;execsqlwhenevernotfoundgotonotfound;/*出错处理*/strcpy(user_name,”mytest”);strcpy(user_pwd,”test”);execsqlconnect:user_nameidentifiedby:user_pwd;/*连接*/while((prompt(cid_prompt,1,c

6、ust_id,4))>=0){execsqlselectcname,discntinto:cust_name,:cust_discntfromcustomerswherecid=:cust_id;execsqlcommitwork;printf(“顾客名:%s折扣率:%5.1f”,cust_name,cust_discnt);continue;notfound:printf(“没找到%s,继续”,cust_id);}/*根据输入的顾客ID查询顾客信息*/execsqlcommitrelease;/*正常释放连接*/return0;report_error:print_dberr

7、or();/*出错信息*/execsqlrollbackrelease;/*释放连接*/return1;}郭文明2003.06.053.1.1C语言中嵌入式SQL区分SQL语句与C语言语句嵌入的SQL语句以EXECSQL开始,以分号(;)结束。例:execsqlselectcame,discntinto:cust_name,:cust_discntfromcustomerswherecid=:cust_id;嵌入SQL语句与C语言之间的数据传递

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。