新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 开发语言 > VB教程 > 正文:VB访问SQL Server数据库技术全揭密

VB访问SQL Server数据库技术全揭密

新客网 XKER.COM 2007-02-01 来源: 收藏本文
  Private Sub InitializeApplication()

  DBLIB_VERSION=SqlInit()

  If DBLIB_VERSION=""Then

  MsgBox"Could not initialize DBLIB!Exit application.", MB_ICONEXCLAMATION

  End If

  End Sub  

  Private Function LoginToServer() As integer

  loginToServer=SUCCEED

  Status%=SqlSetloginTime%(loginTimeOut)

  If giSqlConn<>0 Then

  SqlClose(giSqlConn) 注释:关闭已打开的连接

  giSqlConn=SqlOpenConnection(gsServerName, gsLoginID, gsPassword, ProgramName, ProgramName)

  If giSqlConn<>0 Then

  liresuit=SqlUse(giSqlConn,"Sales")

  Else

  LogintoServer=FAIL

  End If

  End Function  

  4、RDO 远程数据对象(RemoteData Objects)

  要讨论RDO,就必然要谈到DAO。RDO是从DAO派生出来的,但两者很大的不同在于其数据库模式。DAO是针对[记录(Records)]和[字段( Fields)],而RDO是作为[行(Rows)]和[列(Columns)]来处理。也就是说DAO 是ISAM模式,RDO是关系模式。此外DAO是访问Access的Jet引擎(Jet是ISAM)的接口,而RDO则是访问ODBC的接口。

  可见,RDO是综合了DAO/Jet、VBSQL/DBLib以及ODBC的优点的对象(Object)。需要强调的是,RDO是包裹着ODBC API的一层薄薄的外壳, 被设计成在后台(服务器端)有数据库存在的前提下运行,同时也是针对SQL Server和Oracle而特别设计的。

  RDO的优势在于它完全被集成在VB之中。此外,直接访问SQL Server存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、Visual Database Tools的集成化等,也是RDO的长处。

  在RDO的对象和集合中,有很多对数据库的状态和设定进行操作的属性(Property),以及对数据库进行操作的方法(Method)。利用这些,从RDO2.0起就可以开发事件驱动的数据库应用程序。

  RDO对象与VB中其他对象的概念相同。与VB用的ActiveX控件(以往称为Custom Control或OCX、VBX)相似的是,RDO也带有属性和方法;但同Spread、InputMan等普遍应用的ActiveX控件不同的是,RDO没有自己的用户界面,因而可以和VB标准的Timer控件归为同一类。当然也可以将RDO看作调用ODBC API函数,进而对后台数据库操作加以控制的对象。在RDO的属性和方法中,包含了对单个的ODBC API函数以及一连串API函数的调用。

  ①rdoEngine对象

  最初调用RDO对象以及RDC(远程数据控件)时,自动生成rdoEngine对象的附带事件(incident)。rdoEngine用于对RDO全局属性的参数、选项进行设置,是在RDO的阶层结构内处于最上层的对象,包含了所有的其他对象。

  rdoEngine对象与DAO/Jet不同,虽然被多个应用程序共享,但体现rdoEngine对象的设定值的属性却并不共用,而是在各自的应用程序的程序界面中对其分别加以设定。这些设定值对其他使用RDO以及RDC的应用程序没有任何影响。rdoEngine不是集合的要素,而是重新定义的对象,rdoEngine对象不能被追加作成对象属性的初值。

  ②rdoEnvironment对象

  RDO对象在自动创建rdoEngine对象时,将rdoEnviroment对象的初始值生成并保存为rdoEnviroments(0)。一般情况下,应用程序中不必追加rdoEnvironment对象,大多只需对已有的rdoEnviroments(0)进行操作就可以了。只有在支持一个以上事务(Transaction),需要将用户名和口令信息分别处理的情况下,利用rdoCreateEnvironment方法将特定的用户名和口令值做成新的rdoEnvironment对象。在这个方法中可以指定固有名、用户名和口令,如果所指定的值与rdoEnvironments集合的已经存在的成员名称相同,会产生错误。新建的rdoEnvironment对象自动追加在rdoEnvironments集合的最后。调rdoCreateEnvironment方法时,其name参数可以是长度为0的文字列,这时新的rdoEnvironment对象将不会被追加在rdoEnvironments集合之中。

  ③rdoConnection对象

  rdoConnection对象用于同SQL Server的连接管理。

  下面是与SQL Server连接的例子。

  用OpenConnection方法的一个实例。

  设定的DSN为MyDSN:   

  Dim Cn As rdoConnection

  Dim En As rdoEnvironment

  Dim Conn As String

  Conn = "DSN = MyDSN; UID = Jacob;" & "PWD = 123456; DATA BASE = MyDb;"

  Set Cn= En.OpenConnection("", rdDriverPrompt, False, Co nn)

  Set Cn= En.OpenConnection(Prompt:= rdDriverPrompt, Rea dOnly:= False,Connect:= Cnn)

  

    用EstablishConnection方法的一个实例。

  这里以独立的rdoConnection对象为例说明与SQL Server的连接。

    

  Public WithEvents Eng As rdoEngine

  Public WithEvents Cn As rdoConnection

  Private Sub Form_Load()

  Set Eng = New rdoEngine

  Set Cn = New rdoConnection

  With Cn

  .Connect = "UID = ; PWD = ;" & "DATABASE = pubs; DSN = biblio"

  .LoginTimeout = 5

  .EstablishConnection rdoDriverNoPromt, True, rdAsyncEna ble

  End With

  End Sub  

  在这个例子中,Form_Load函数对rdoEngine和rdoConnection对象进行初始化。这里有一点需要注意,rdoConnection对象是处于独立的状态之下,即使是处于未连接状态也可以设置属性的值。接下来是rdoConnect对象的事件处理程序。从RDO 2.0起可以实现异步方式(rdAsyn cEnable),EstablishConnection就设定为该值。在异步状态下,不必等待与数据库的连接,程序可以迅速从Form_Load 函数中退出。 然后是BeforeConnect事件,该处理在与数据库的连接开始以前被激发,此时不能进行有关终止连接的操作:   

  Private Sub Cn_BeforeConnect(ConnetString As String, Pro mpt As Variant)

  MsgBox "正在连接" & ConnectString, vbOKOnly, "连接前"

  End Sub (未完)
共4页: 上一页 [1] [2] [3] [4] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐