欢迎来到天天文库
浏览记录
ID:48031601
大小:632.50 KB
页数:45页
时间:2020-01-13
《C语言数据库应用程序开发.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言数据库应用程序开发数据库原理与应用-基础·开发技术·实践电子工业出版社本章内容9.1嵌入式SQL语句19.2静态SQL语句29.3动态SQL语句339.4C语言数据库应用程序开发实例449.1嵌入式SQL语句嵌入式SQL语言的一些概念1.嵌入式SQL语句嵌入式SQL语句是指在应用程序中嵌入SQL语句。该应用程序称为宿主程序或主程序,书写该程序的语言称为宿主语言或主语言。2.执行性SQL语句和说明性SQL语句嵌入的SQL语句主要有两种类型:执行性SQL语句和说明性SQL语句。执行性SQL语句可用来连接数据库,定义、查询和操纵数据库中的数据,真正
2、对数据库进行操作,执行完成后,在通信区中存放执行信息。说明性语句用来说明通信区和SQL语句中用到的变量。说明性语句不生成执行代码,对通信区不产生影响。3.事务事务是逻辑上相关的一组SQL语句。数据库把它们视作一个单元。为了保持数据库的一致性,一个事务内的所有操作要么都做,要么都不做。嵌入式SQL也能够很好地支持事务。9.1.1在C语言程序中嵌入SQL语句的程序开发环境的搭建本章的配置在安装好VisualC++6.0和SQLServer2000的基础上进行,在配置过程中需要用到SQLServer2000安装光盘,要准备好。(1)准备编译所需的头文件和
3、库文件。(2)准备开发工具。(3)初始化SQLServer预编译环境。(4)初始化VisualC++编译器环境。9.1.2第一个在C语言程序中嵌入SQL语句的程序(1)编辑源代码。#includevoidmain(){//声明嵌入式SQL的变量,此部分语句不会执行EXECSQLBEGINDECLARESECTION;charfirst_name[40];charlast_name[]="White";EXECSQLENDDECLARESECTION;//使用用户名sa和密码123连接到localhost主机的Pubs数据库EXEC
4、SQLCONNECTTOlocalhost.PubsUSERsa.123;//执行SQL语句,并将查询到的au_fname字段内容放到first_name中EXECSQLSELECTau_fnameINTO:first_nameFROMauthorsWHEREau_lname=:last_name;//断开连接EXECSQLDISCONNECTALL;//输出first_name的内容printf("firstname:%s",first_name);}(2) 预编译此SQC文件。(3) 使用VisualC++6.0打开demo.c文件,编译和
5、链接文件,注意需要将头文件和相关库文件添加到工程中。9.2静态SQL语句嵌入式SQL语句从SQL语句的生成角度分为静态SQL语句和动态SQL语句两类。静态SQL语言,也就是说在编译时已经确定了引用的表和列。宿主变量不改变表和列信息。可以使用主变量改变查询参数值,但是不能用主变量代替表名或列名。9.2.1声明嵌入式SQL语句中使用的C变量1.声明方法主变量(HostVariable)就是在嵌入式SQL语句中引用主语言说明的程序变量,例如:EXECSQLBEGINDECLARESECTION;charfirst_name[50];charlast_na
6、me[]="White";EXECSQLENDDECLARESECTION;…EXECSQLSELECTau_fnameINTO:first_nameFROMauthorsWHEREau_lname=:last_name;…2.主变量的数据类型主变量是一个用程序设计语言的数据类型说明并用程序设计语言处理的程序变量;在嵌入式SQL语句中用主变量保存从数据库中取出的数据。所以,在嵌入式SQL语句中,必须映射C数据类型为合适的DBMS数据类型,因此应慎重选择主变量的数据类型。3.主变量和NULL大多数程序设计语言(如C)都不支持NULL,所以对NULL的
7、处理一定要在SQL中完成。可以使用主机指示符变量(HostIndicatorVariable)来解决这个问题。在嵌入式SQL语句中,主变量和指示符变量共同规定一个单独的SQL类型值,例如:EXECSQLSELECTpriceINTO:price:price_nullflagFROMtitlesWHEREau_id="mc3026"9.2.2连接数据库在程序中,使用CONNECTTO语句来连接数据库。该语句的完整语法为:CONNECTTO{[server_name.]database_name}[ASconnection_name]USER[logi
8、n[.password]
9、$integrated]其中:(1)server_name为服务器名。如省略,则为本地服务器名。
此文档下载收益归作者所有