VB访问SQLServer数据库技术全揭密(1)
本文讨论了VisualBasic应用程序访问SQLServer数据库的几种常用的方法,分别说明了每种方法的内部机理并给出了每种方法的一个简单的实例,最后比较了每种方法性能和优缺点。
一、引言
SQLServer是微软推出的中小型网络数据库系统,是目前最常用的数据库系统之一。随着SQLServer网络数据库应用程序日益增多,这种Web数据库应用系统的正常运行一般依赖于已存在的用户数据库。创建维护数据库的工作可用SQLServer提供的SQLEnterpriseManager工具来进行,如能提供一种定制的数据库管理工具,通过管理应用程序来管理数据库及其设备,对用户来说无疑是最理想的。
VisualBasic作为一种面向对象的可视化编程工具,具有简单易学,灵活方便和易于扩充的特点。而且Microsoft为其提供了与SQLServer通信的API函数集及工具集,因此它越来越多地用作大型公司数据和客户机—服务器应用程序的前端,与后端的MicrosoftSQLServer相结合,VB能够提供一个高性能的客户机—服务器方案。
二、VB访问SQLServer数据的常用方法
使用VisualBasic作为前端开发语言,与SQLServer接口有几种常用的方法,即:
①数据访问对象/Jet
②为ODBCAPI编程
③使用SQLServer的VisualBasic库(VBSQL)为DB库的API编程
④RDO远程数据对象(RemoteDataObjects)
⑤ADO数据对象(ActiveDataObjects)
1、数据访问对象/Jet
VB支持DataAessObjects(DAOs)的子集。DAO的方法虽然不是性能最好的管理客户机—服务器之间的对话方式,但它的确有许多优点。DAO/Jet是为了实现从VB访问Aess数据库而开发的程序接口对象。使用DAOs访问SQLServer的过程如下:应用程序准备好语句并送至Jet,Jet引擎(MASJT200DLL)优化查询,载入驱动程序管理器并与之通讯,驱动程序管理器(ODBCDLL)通过调用驱动器(SQLSRVRDLL)的函数,实现连接到数据源,翻译并向SQLServer提交SQL语句且返回结果。下面是一个用DAOs访问SQLServer的VB实例。
注释:Form
DimmydbAsDatabase
DimmydynasetAsDynasetオ
PrivateSubForm_Load()
Setmydb=("",False,False,"ODBC;DSN=Myserver;WSID=LCL;DATABASE=sales")
Setmydynaset=mydb("SelectfromCustomers")オ
EndSubァ
上述例子是以非独占、非只读方式打开sales数据库,并检索Customers表中的所有字段。函数的最后一个参数是ODBC连接字符串参数,它指明了MicrosoftAess连接到SQLServer所需要知道的一些内容。其中“DSN”为数据源名,“WSID”为工作站名,“DATABASE”为所要访问的数据库名。
2、利用ODBCAPI编程
ODBC(OpenDatabase)的思想是访问异种数据库的一种可移植的方式。与数据资源对话的公用函数组装在一个称为驱动程序管理器(ODBCDLL)的动态连接中。应用程序调用驱动程序管理器中的函数,而驱动程序管理器反过来通过驱动器(SQLSRVRDLL)把它们送到服务器中。
下面的代码使用上面一些函数先登录到一个服务器数据库,并为随后的工作设置了语句句柄。
GlobalgiHEnvAsLong
GlobalgiHDBAsLong
GlobalgiHStmtAsLong
DimmyResultAsinteger
DimAsSrting
DimmyBuffAsString256
DimmyBufflenAsInteger
IfSQLAllocEnv(giHEnv)SQL_SUCCESSThen
MsgBox"Allocationcouldn注释:thappen!"
EndIf
If(giHEnv,giHDB)SQL_SUCCESSThen
MsgBox"SQLServercouldn注释:tconnect!"
EndIf
="DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=sales"
myResult=(giHDB,Test,form1hWnd,len(),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)
myResult=(giHDS,giHStmt)
myResult=SQLFreeStmt(giHStmt,SQL_COLSE)
rsSQL="SelectfromCustomersWhereCity="Hunan""
myResult=(giHStmt,rsSQL,Len(rsSQL))
3、使用VBSQL对DB库API编程
DB库是SQLServer的本地API,SQLServer的VisualBasic库(VBSQL)为VisualBasic程序员提供API。从一定意义上说,VBSQL是连接VisualBasic程序到SQLServer的性能最好最直接的方式。VBSQL包含以下三个文件:
VBSQLVBX:包含库函数,具有访问重要的消息和处理错误的能力
VBSQLBI:包括所有的常量和变量说明
VBSQLHLP:Windows帮助文件,使用VBSQL的指南
使用VBSQL时,必须将VBSQLBI加入到VisualBasic工程文件中,并确保VB程序运行时有VBSQLVBX文件。
一般的DB库API编程的过程是这样的:先通过调用SqlInit对DB库进行初始化,再调用打开一个连接,然后就可做一些工作。下面的代码是一个初始化DB库并登录到服务器的通用例程
C#无法直连数据库,需要引入关于连接数据库的头文件,依赖等。C#连接数据库的步骤:
1、把安装好的MySQL目录里的libmySQLdll复制到C:\Windows\system32\下;
2、把MySQL的头文件添加到环境中;
3、把libmysqllib添加到VS2010的项目中即可。
数据依赖,数学概念,是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,数据依赖是现实世界属性间相互联系的抽象,属于数据内在的性质。在计算机科学中,数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。在编译学中,数据依赖是数据分析的一部分。
中文名
数据依赖
外文名
Data dependence
定义
数学概念
体现
体现出来的数据间的相互关系
位置
数据分析的一部分
数学定义计算机学定义种类数据库中的数据依赖TA说
数学定义
定义:设有一关系模式R(A1,A2,…,An),X和Y均为(A1,A2,…,An)的子集,对于R的值r来说,当其中任意两个元组u,v中对应于X的那些属性分量的值均相等时,则有u,v中对应于Y的那些属性分量的值也相等,称X函数决定Y,或Y依赖于X,记为X->Y[1]。
例:有关系,学生(学号S#,姓名SN,系名SD),子集X(学号S#),子集Y(系名SD)。
每个学生有唯一的一个学号,学生中可以有重名的姓名,每个学生只能属于一个系,每个系有唯一的系代号。有此,可以找出学生关系模式中存在下列函数依赖:
S#->SN;S#->SD
例:有关系,学校简况(学号S#,系名SD,系主任MN,课程CN,成绩G)。可写出函数依赖:
S#->SD;SD->MN;S#,CN->G
根据函数依赖的不同性质,函数依赖可分为完全函数依赖、部分函数依赖和传递函数依赖。
22 完全函数依赖
定义:在R(U)中,如果X->Y,对于X的任意一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依赖,记为XY 。
例:(S#,CN)->G
23 部分函数依赖
定义:在R(U)中,如果X-> Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。
24 传递函数依赖
定义:在R(U)中,当且仅当X-> Y,Y->Z时,称Z对X传递函数依赖。
例:描述学生(S#)、班级(SB)、辅导员(TN)的关系U(S#,SB,TN)。一个班有若干学生,一个学生只属于一个班,一个班只有一个辅导员,但一个辅导员负责几个班。根据现实世界可得到一组函数依赖:
F={S#->SB,SB->TN}
学生学号决定了所在班级,所在班级决定了辅导员,所以辅导员TN传递函数依赖于学生学号S#。
数据依赖还包括多值依赖和连接依赖两种形式。
--------------------------------------------------------------------------------------------------
计算机学定义
数据依赖是指一种状态,当程序结构导致数据引用之前处理过的数据时的状态。在编译学中,数据依赖是数据分析的一部分。
解说:假设有如下表述S1和S2,
(I (S1) ∩ O(S2)) ∪ (O(S1) ∩ I(S2)) ∪ (O(S1) ∩ O(S2)) ≠ Φ
那么S2依赖S1。I(Si)是内存位置的集合,可由Si和S2读
O(Sj)是内存地址的集合,由Sj写,
则这里S1和S2就有一个必须遵守的执行顺序。
种类
数据依赖有三种,
1 流依赖(flow dependency),一个变量在一次表达式中赋值或修改然后用在后来的另一个表达式中。例
a=bc
d=a-e
2反依赖(anti dependency),一个变量在一个表达式中被使用然后在后来一个表达式中被修改赋值。例
a=bc
b=d+e
3输出依赖,一个变量在一表达式中被修改赋值然后又在后来另一个表达式中被修改值,例
a=b+c
a=d-e
数据库中的数据依赖
数据依赖是数据之间的相互制约关系,是一种语义体现,主要分为函数依赖(FD)、多值依赖(MVD)和连接依赖(JD)[2]。
函数依赖
两个实例化的属性集X,Y,如果属性集X中的两个元组取值相同,必有对应的另外一个属性集Y中元组取值相同,则称Y函数依赖于X函数。
特别值得注意的是,如果属性集X中不存在两个取值相同的元组集合,则Y必定依赖于函数X,且函数X的属性集为超键。
平凡函数依赖和非平凡函数依赖。平凡函数依赖:如果Y依赖于X,同时Y是X的子集,那么称X -> Y 为平凡函数依赖;非平凡函数依赖:Y不是X的子集。对于任意关系模式而言,平凡函数依赖是必然成立的,其并不反映新的语义特征,因此我们一般不讨论平凡函数依赖。
完全函数依赖和部分函数依赖。完全函数依赖表示的就是函数X的属性集构成了候选键。其中形式化的表示就是如果对于X的任何一个子集Z,都有Y不依赖于Z,则称Y完全函数依赖于X。如果Y不完全函数依赖于X,则称Y部分函数依赖于X。完全函数依赖的左部构成主键,不包含冗余的属性。
传递函数依赖和直接函数依赖。如果Y函数依赖于X,Z函数依赖于Y,其Y不是X的子集,X不依赖于Y,则称Z传递依赖于X,否则称Z直接函数依赖于X。
函数依赖的逻辑蕴涵。
,即对于关系模式上的函数依赖集合F,只要X→Y是一个函数依赖,那么必然可以推导认为F逻辑蕴涵X→Y。
函数依赖集合的闭包。由函数依赖集合F所逻辑蕴涵的全部函数依赖所构成的集合称之为F的闭包。
。闭包的性质:1 F 属于 F+,这是因为根据闭包的定义F中的每个函数依赖必定也在中F+;2 (F+)+=F+,该性质说明闭包运算是幂等的,即F经过任意多次的闭包运算后其结果仍然等于F+;3如果F=F+,则称F是完备的。
编辑
传视频
TA说
目录
在
以上就是关于网络怎么连接数据库全部的内容,包括:网络怎么连接数据库、c# 不直连 数据库、数据依赖左部是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)