当前位置:首页 » 编程语言 » 嵌入式SQL的预处理方式

嵌入式SQL的预处理方式

发布时间: 2023-06-13 20:58:12

① C语言中使用嵌入式sql

嵌入式SQL程序的VC+SQL server 2000实现的环境配置

嵌入SQL的C应用程序具体到VC++6.0, SQL Server2000 下调试可分为五步:1、环境初始化;2、预编译;3、编译;4、连接;5、运行。下面就其中重要的的操作方法给以详细说明。
1、环境初始化
(1) SQL Server2000为其嵌入式SQL提供了一此特殊的接口;默认的安装方式没有安装这此接口;因此,需要把devtools.rar解压到SQLServer的系统日录下(即文件夹devtools中的所有文件);如果操作系统安装在C盘,则SQL Server的系统目录是C:\Program Files\Microsoft SQL Server。(或 在安装Microsoft SQL Server 2000时选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。)
( 2)初始化Visual C++ 6.0编译器环境。在命令行方式下运行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
(3)初始化SQL Server的预编译环境。在命令行方式下运行文件:\Devtools\samples\esqlc\setenv.bat。
( 4) VC++6.0环境配置。具体配置分为如下三步[:
①Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\devtools\include。将SQL server自带的用于数据库开发的头文件包含到工程环境中。
②Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\devtools\x861ib。将开发用到的包包含到工程中。
③project->Settings->Link->Object/Library Moles,添加库文件:SQLakw32.lib, Caw32.lib。这两个文件之间用空格分开。

2、预编译
C语言编译程序不能识别应用程序中的SQL语句,需要经过预处理程序将其转换成C语句。SQL Server的预处理程序是nsqlprep.exe。 nsqlprep.exe在SQL Server安装日录的MSSQL\Binn下。若SQL Server数据库采用的是默任安装方式,则需要把binn.rar的内容拷贝到指定目录下。

Microsoft SQL Server 2000提供的预编译程序nsqlprep.exe,用于对嵌入式SQL程序进行预编译处理,生成C语言源程序.实际上就是将嵌入式SQL程序中的嵌入式SQL语句替换为对运行时库文件Sqlakw32. dll的函数调用,接着运行时库文件调用动态连接库Ntwdblib. dll通过网络来存取Microsoft SQL Server 2000数据库服务器.
预编译程序nsqlprep的常用语法为:
nsqlprep ESQL_File /SQLACCESS /DB server_name.database_name /PASS login.password
其中ESQL_File是要预编译的嵌入式SQL程序;/SQLACCESS通知nsqlprep自动地为嵌入式SQL程序中的静态SQL语句创建相应的存储过程;/DB server_name.database_name指明要连接的服务器以及数据库名称;/PASS login.password给出登录名及相应的口令.

下面的程序demo.sqc实现了从数据库服务器hushaobo的数据库pubs中的authors表中读取au_lname为white的人对应的 au_fname 值,并保存到变量first_name 中显示出来。(连接数据库的用户为sa,对应密码为1982)

#include<stdio.h>
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[40];
char last_name[]="White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO hushaobo.pubs
USER sa.1982;
EXEC SQL SELECT au_fname INTO :first_name from authors WHERE au_lname = :last_name;
EXEC SQL DISCONNECT ALL;
printf("first name: %s \n",first_name);
}

在命令行下运行:nsqlprep demo.sqc /SQLACCESS /DB hushaobo.pubs /PASS sa.1982
则生成demo.c,将该文件添加到VC工程中编译即可。

3、编译,连接与运行
在VC++6.0中创建一个 "WIN32 Console Application"的Proiect,然后将预编译生成的c文件加入Proiect,编译连接即可生成访问SQL Server的可执行程序。 Visual C++ 6.0进行编译连接时需要用到动态链接库SQLakw32.d11与SQLaiw32.d11;尽管这两个文件已经随同binn.rar被拷贝到SQLServer安装目录的MSSQL\Binn文件夹下,但仍然需要把它们的路径加到系统路径变量中,以使得程序运行时能找到它们,具体添加方法如下:
方法1:把这两个文件拷贝到操作系统目录下的system32子目录中。
方法2:我的电脑->属性->高级->环境变量->path->编辑,在变量值中加入路径值;新路径与已有路径间用;间隔。

注意调适程序时,文件名中不要包含cursor,否则可能会出错。

② 关于嵌入式SQL(初学)

你需要学的不是从数据库的书中找
而是从c c++ 的函数库或类库中找执行sql功能的函数或类

比如说vc
中的
#include <sql.h>
#include <sqlext.h>
就是用来进行odbc数据库操作的
你去查看相关的msdn帮助就行了

③ 数据库嵌入式sql编程,求解

题目没有说明表之间的外键关系,那我就默认同名的列名是外键,不清楚你用的编程语言,所以我使用:input作为输入变量
1
select Teacher.Tname,Teacher.Tage,Teacher.Tsex,Work.Salary from Teacher,Work,Department
where Teacher.Tno=Work.Tno and Department.Dno=Work.Dno
and Department.Tno=Teacher.Tno and Work.Salary>:input
2
update Work set Salary=:input from Teacher,Department
where Teacher.Tno=Work.Tno and Department.Dno=Work.Dno
and Department.Tno=Teacher.Tno and Work.Salary<:input

④ 嵌入式SQL的工作原理

提供对于嵌入式SQL的支持,需要数据库厂商除了提供DBMS之外,还必须提供一些工具。为了实现对于嵌入式SQL的支持,技术上必须解决以下4个问题[1]: 1.宿主语言的编译器不可能识别和接受SQL文,需要解决如何将SQL的宿主语言源代码编译成可执行码;2.宿主语言的应用程序如何与DBMS之间传递数据和消息;3.如何把对数据的查询结果逐次赋值给宿主语言程序中的变量以供其处理;4.数据库的数据类型与宿主语言的数据类型有时不完全对应或等价,如何解决必要的数据类型转换问题。 嵌入式SQL源码的处理流程 为了解决上述这些问题,数据库厂商需要提供一个嵌入式SQL的预编译器,把包含有嵌入式SQL文的宿主语言源码转换成纯宿主语言的代码。这样一来,源码即可使用宿主语言对应的编译器进行编译。通常情况下,经过嵌入式SQL的预编译之后,原有的嵌入式SQL会被转换成一系列函数调用。因此,数据库厂商还需要提供一系列函数库,以确保链接器能够把代码中的函数调用与对应的实现链接起来。

⑤ 三级数据库技术辅导第四讲:SQL语言特点

结构化查询语言这一名称实际上有些不贴切。

首先,尽管查询是设计SQL的最初目的,检索数据也仍然是其最重要的功能之一,但SQL决不仅仅是一个查询工具。SQL用于控制DBMS提供给用户的所有功能,包括:

数据定义(Data definition):SQL可用于定义被存放数据的结构和组织,以及数据项之间的关系。

数据检索(Data retrieval):SQL能使用户或应用程序从数据库中检索数据并使用这些数据。

数据操纵(Data manipulation):用户或应用程序通过SQL更改数据库,如增加新数据,删除旧数据,修改已存入的数据等。

存取控制(Access control):SQL可用来限制用户检索,增加和修改数据的权限,一保护所存储的数据不被非法存取。

数据共享(Data sharing):SQL可用于调整数据让并发用户共享,以保证用户之间彼此不受影响。

数据完整性(Data integrity):SQL能对数据库的完整性条件作出规定,以使其不会因为修改紊乱或系统出错而被破坏。
第二,SQL并不是一种像COBOL,FORTRAN和C语言等那样完整的计算机语言。SQL没有用于条件测试的IF语句,没有用于程序分支的GOTO语句,也没有用于循环的DO或FOR语句。

确切地说,SQL是一种数据库子语言(sublanguage)。也称为第四代语言(4GL),一种非过程语言。

SQL语言简洁,为完成其核心功能只用了6个动词:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。

ANSI SQL的类型

目前的ANSI SQL标准认可四种SQL语句的方法。采用何种方法依赖于应用程序编程环境:

交互式SQL(Interactive SQL):类似于Forpro,以命令行形式执行SQL语句。

嵌入式SQL(Embedded SQL):通过在SQL语句前假如一个关键字来执行SQL语句。例如C中的EXEC SQL。

模块SQL(Mole SQL):允许创建独立于3GL源代码的编译SQL语句,然后把编译好的目标模块连入可执行程序。SQL模块类似于Visual Basic代码模块,模块中包含变量说明和用来容纳查询结果集合的临时表,可以把变元值从3GL传递给SQL模块说明的过程参数。在数据库服务器上执行预编译查询的存储过程有许多与模块SQL共同的性质。

动态SQL(Dynamic SQL):可以创建在编写语句时无法预测其内容的SQL语句(前面的多缓神种SQL类型属于静态SQL类)。例如:读者想设计一个可以针对多种数据扰毁亏库处理查询的Visual Basic应用程序。动态SQL可以以字符串形式向数据库传送查询。例如,可以向数据库传送一个查询并获得详细的信息,这些信息来自描述数据库表及表中字段的数据库字典。在知道了数据库结构之后,应用程序用户可以创建向查询添加正确字段名的定制查询。
SQL的作用

SQL本身不是一个数据库管理系统,也不是独立的产品。事实上,SQL是数据库管理系统的余戚一个组成部分,是用户和DBMS通信的语言和工具。

SQL有下列作用:

SQL是一种交互式查询语言

SQL是一种数据库编程语言

SQL是一种数据库管理语言

SQL是一种客户机/服务器语言

SQL是一种分布式数据库语言

SQL是一种数据库网关语言

⑥ 使用SQL语言有哪两种方式

使用SQL语言有两种方式,它们是交互式和嵌入式。

SQL语言可直接以命令方式交互使用(交互式),也可嵌入到程序设计语言中以程序方式使用(嵌入式)。现有数据库应用开发工具一般将SQL语言直接融入到自身的语言之中,使用起来更方便,这些使用方式为用户提供了灵活的选择余地,尽管SQL的使用方式不同,但SQL语言的语法基本是一致的。

(6)嵌入式SQL的预处理方式扩展阅读:

SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。

尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用;数据描述、操纵、控制等功能一体化。

热点内容
安卓怎么快速多选手机桌面图标 发布:2025-02-13 06:21:51 浏览:298
androidia安装 发布:2025-02-13 06:12:14 浏览:12
jsmcc文件夹 发布:2025-02-13 06:11:26 浏览:170
算法与程序设计教案 发布:2025-02-13 06:10:51 浏览:55
ftp登录需要输入用户名和密码 发布:2025-02-13 06:03:33 浏览:398
数控编程代表 发布:2025-02-13 05:58:51 浏览:385
编程凸轮 发布:2025-02-13 05:38:21 浏览:691
判断素数的编程 发布:2025-02-13 05:29:25 浏览:618
androidaes加密 发布:2025-02-13 05:08:36 浏览:493
李宗瑞文件夹 发布:2025-02-13 04:27:59 浏览:611