当前位置:首页 » 编程语言 » 嵌入式SQL
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

嵌入式SQL

发布时间: 2022-01-16 14:10:50

1. 嵌入式sql怎么实现

C++ 本来就不识别SQL,要在C++里对SQL类的数据库进行操作的正确做法的原理是:
1、使用控件,向SQL类服务器(比如MS SQL Server或Oracle,或最简单的ACCESS数据库)发送SQL语句,SQL类服务器响应后就会针对语句的要求进行返回数据集或结果,控件可以收到结果,然后进行展现或处理。
2、一般最常见的是ADO Data类的控件,比如C++Builder里的ADOQUERY,ADODataset。又比如VC里的ADO Data控件,等等。
3、想具体的学习如何进行SQL数据库编程,可自个网络关键词:“SQL数据库编程”,或“C++Builder SQL数据库编程 ”。

2. 嵌入式sql和JDBC、ODBC什么区别呢

初次接触嵌入式数据库(Embedded Database)可能对这个概念总不是很清楚,它究竟与数据库服务器(Database Server)有什么区别,它们又分别适用于那些应用场景呢,这是需要解决的问题。
在谈区别之前,先来个感性认识。像Oracle、Sybase、MySQL和SQL Server这些大家熟知的数据库都属于数据库服务器(当然不排除某些也提供嵌入式版本),而像SQLite、Berkeley DB等属于嵌入式数据库。
嵌入式数据库跟数据库服务器最大的区别在于它们运行的地址空间不同。通常,数据库服务器独立地运行一个守护进程(daemon),而嵌入式数据库与应用程序运行在同一个进程。
数据库服务器的架构如下:

图中的数据库客户端通常通过数据库驱动程序如JDBC、ODBC等访问数据库服务器,数据库服务器再操作数据库文件。
数据库服务是一种客户端服务器模式,客户端和服务器是完全两个独立的进程。它们可以分别位于在不同的计算机甚至网络中。客户端和服务器通过TCP/IP进行通讯。这种模式将数据与应用程序分离,便于对数据访问的控制和管理。

嵌入式数据库架构如下:

嵌入式数据库不需要数据库驱动程序,直接将数据库的库文件链接到应用程序中。应用程序通过API访问数据库,而不是TCP/IP。因此,嵌入式数据库的部署是与应用程序在一起的。比如常见的版本控制器SubVersion,它所用的嵌入式数据库就是跟应用程序放在一起的。
数据库服务器和嵌入式对比如下:
(1)数据库服务器通常允许非开发人员(DBA,数据库库管理员)对数据库进行操作,而在嵌入式数据中通常只允许应用程序对其进行访问和控制。
(2)数据库服务器将数据与程序分离,便于对数据库访问的控制。而嵌入式数据库则将数据的访问控制完全交给应用程序,由应用程序来进行控制。
(3)数据库服务器需要独立的安装、部署和管理,而嵌入式数据通常和应用程序一起发布,不需要单独地部署一个数据库服务器,具有程序携带性的特点。
从上面的对比可以看出,数据库服务器和嵌入式数据库各自具有自己的特点,它们分别适用于不同的应用场景。
如果你要存储的数据的访问比较复杂,比如跨网络、复杂的访问控制策略,又需要数据库管理员经常进行管理和维护,那么数据库服务器就非常适合你。
如果你要存储的数据的访问之需要应用程序控制即可,并且基本不需要人工干预,而且需要对数据的访问简单、快速有效,那么嵌入式数据库适合你。
另外,你是否有过这样的情况:存储的数据量不是很大,如果搞个一般的数据库来感觉太浪费了,而且如果发布这个程序还非常麻烦,这时那些微小的嵌入式数据库可能非常适合你(如某些电子邮件客户端就采用的是嵌入式数据库)。

3. 什么是嵌入式sql应用程序

嵌入式SQL
语言是将
SQL语句
直接嵌入到程序的源代码中,与其他
程序设计语言
语句混合.
嵌入式SQL的用途:它是数据库应用程序的一种开发方法.是一种应用程序进行数据库访问时所采取的编程式
数据库语言
.

4. 关于嵌入式SQL(初学)

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

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

5. 数据库(嵌入式SQL语句、游标)

http://202.207.212.6/bcnr/www/3f73.htm

http://202.207.136.30/sjkwz/htm/3.7.2.1.htm

http://www.cs.xmu.e.cn/ecation/fine_courses/database/%BE%AB%C6%B7%BF%CE%B3%CC%BD%A8%C9%E8%C4%DA%C8%DD/3_%CD%F8%C2%E7%B0%E6cai/content/3/3.7.2.htm

游标例子:
declare @a int,@b char(10),@c int,@d char(10)
--建变量
create table #tmp(id int,book char(10),price int, sid char(10))
--建临时表
DECLARE boss1 CURSOR FOR SELECT * FROM abc order by id desc
--建游标(同时选出记录结果集)

OPEN boss1 --打开游标
FETCH NEXT FROM boss1 INTO @a,@b,@c,@d --选第一条记录写入变量中

while(@@fetch_status=0) --当没有到记录集末尾时执行以下begine、end语句
begin
insert into #tmp values(@a,@b,@c,@d) --把选出变量插入临时表
FETCH NEXT FROM boss1 INTO @a,@b,@c,@d --选下一条记录
end

select * from #tmp
drop table #tmp
close boss1 关闭游标
deallocate boss1 删除游标

6. 嵌入式SQL的预处理方式指什么

嵌入式SQL实现时,采用预处理方式是识别出SQL语句,并处理成函数调用形式。

嵌入式SQL(英文: Embedded SQL)是一种将SQL语句直接写入C语言,COBOL,FORTRAN, Ada等编程语言的源代码中的方法。借此方法,可使得应用程序拥有了访问数据以及处理数据的能力。在这一方法中,将SQL文嵌入的目标源码的语言称为宿主语言。
在SQL标准的SQL86(1986年发布)中定义了对于COBOL, FORTRAN, PI/L等语言的嵌入式SQL的规范。在SQL89(1989年发布)规范中,定义了对于C语言的嵌入式SQL的规范。一些大型的数据库厂商发布的数据库产品中,都提供了对于嵌入式SQL的支持。比如Oracle, DB2等。

7. 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,否则可能会出错。

8. vs2010 怎么写嵌入式sql

你说的是嵌入式开方法?安一个开发包 同步工具 开打vs 里 工具里面有一个选项连接,选择你的开发平台就ok了。

9. 嵌入式SQL语句与动态SQL语句的差别

从我接触到得信息来看,嵌入式SQL是指固定写死在程序中的SQL文,不论程序怎么变化这个SQL文总是不会变。
但是动态SQL就不一样了,他会随着条件的变化而变化。

比如
如果 【SELECT COUNT(*) FROM USER_TABLES;】嵌入写死在程序中这就叫嵌入式SQL。
如果【SELECT COUNT(*) FROM USER_TABLES WHERE TABLE_NAME=‘变量’】这个就叫做动态SQL

个人愚见,希望对你有帮助。