zoukankan      html  css  js  c++  java
  • TADOConnection组件

    该组件用于建立数据库的连接。ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等。
    该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据集及命令组件通过设置其ConnectionString属性,可以直接连接到数据库。但是如果多个数据集使用相同的数据库连接时,则使用TADOConnection就有一定的优势,因为不必为每个数据集都单独建立数据库的连接,同时也减少了资源的消耗,并且可以建立跨越多个数据集的事务。一个事务(transaction)是数据库操作的一个阶段,用户对数据库的修改都保存在本地计算机的内存中,只有提交一个事务后,才能将修改的内容提交到数据库中。如果选择了回滚事务,则所有的修改将被取消,而不会提交到数据库中。

    TADOConnection组件提供如下功能:

    • 控件数据库的连接
    • 控制服务器的注册
    • 管理事务
    • 为关联的数据集提供数据库连接
    • 将SQL命令发送到数据库中
    • 获得数据库的原数据(metadata)

    TADOConnection的常用属性

    1. Attributes
      此属性用于设置连接的数据库的自动处理的行为,它是TxactAttributes类型的集合,包括两个集合元素:
      1. XaCommitRetaining:提交一个事务后自动开始一个新的事务。
      2. XaAbortRetaining: 回退一个事务的同时将开始一个新的事务。
    2. CommandTimeout
      连接超时属性,用于设置一个命令执行时所能等待的最大时间值。以秒为计量单位。缺省值为30秒,即连接命令等待了30秒之后还没有被执行,系统就放弃这个命令
    3. Connected
      标识和数据库的连接是否处于激活状态。
      用户可以查询Connected属性的值来判断数据库的连接状态。如果该属性为true,则表明数据库处于连接状态;为false,则当前数据库连接关闭。
    4. ConnectionString
      连字符串用于指定数据库的连接信息。连字符串的标准调用方为:ADOConnection1.ConnectionString:='Provider=ProviderRet;Remote Server=ServerRet';
      其中,连接串支持的常用参数如下:
      数据库连接参数及说明
      参数         说明
      Provider   数据提供者名称,例如MSDASQL.1
      Password 登录数据库的口令
      Persist Security  支持安全登录
      User ID 登录数据库用户
      DataSource 数据源名称、数据源的设置需要额外的操作
      设置成功之后,用户就可以将属性Connected设置为True,如果没有任何提示信息,说明数据库已经成功连接,此时,属性DefaultPatabase就被赋值为连接所指定的数据库的路径。
    5. ConnectOptions

                 指定数据库连接是按照同步方式还是异步方式。类型Tconnectoption包含两个值:

      1. coConnectUnspecified:数据库连接采用同步方式连接。
      2. coAsyncConnect:异步方式连接数据库。当服务器负载很重的时候,这种连接方式很有用。引用这种连接方式,在第一次建立连接的时候,应用程序不能获得全部的数据。
    1. CursorLocation
      指定数据库指针是指向客户端还是服务器端。类型TcursorLocation包含两个值:
      cluseServer:使用服务器端的数据库指针,适用于数据量大的数据集。
      cluseClient:使用客户端的数据指针的时候,数据将被下载到本地计算机上,并在本地进行操作。
    2. DefaultDatabase
           表明数据源成功连接后,这是由数据源自动赋值的。
    3. IsoLationLevel
      指定不同事务之间的相互独立的级别,事务实际上是对数据库的一系列操作的集合。事务具有整体性,如果事务中的某一个步骤不能正确执行,则整个事务都不会执行。由于数据库服务器可以同时支持多个连接,来自不同连接的事务有可能在同一时刻对同一个数据进行操作,这就有可能造成数据不一致性。为防止这种情况出现,ADO引入了事务独立级来确定不同事务之间的相互关系。设定事务独立级之后并调用BeginTrans方法后,新的事务独立级别将生效。
      TISolationLevel共包含9种常量值:如下:
      TISolationLevel常量及说明
      常量参数                  说明
      ilUnspecified  使用默认的独立级别,没有其它的独立级别
      ilChaos  来自更高独立级别的事务对数据的改变不能被当前的事务覆盖
      ilReadUncommitled  当前事务可以读取其他事务未提交的数据
      ilBrowse       当前事务可以读取其他事务未提交的数据
      ilcursorStability   事务提交后数据才能被读取
      ilReadCommitled   事务提交后数据才能被读取
      ilRepeatableRead  不能读取其它事务的数据,执行Requery操作可以获得这些数据
      ilSerializable    从其他事务中获取事务的独立级别
      ilIsolated      从其他事务中获取事务的独立级别

        这些常量的定义在Microsoft Data Access SDK中有详尽的说明,需要进一步了解可以查询微软的SDK文档。

    9. KeepConnection
         指定如果在没有打开数据集的情况下是否仍然保持数据的连接。
         濒繁地打开和关闭数据库的操作将会影响系统的性能,特别在网络上,会在一定程度上增加网络的负载。这个属性设置数据源始终处于连接状态,可以显著提高程序的性能。
    10.LoginPrompt
         指定在每次建立连接时是否弹出登录对话框提示用户登录。如果设为False,则必须在ConnectionString中指定登录数据库的用户和密码。
    11.Mode
      定连接对数据库的操作权限,这种连接模式的值如下:
      连接模式参数及说明
      参数 说明
      cmUnknown 未指定数据库操作权限或无法确定
      cmRead       对数据库只能读操作
      cmWrite       对数据库只能写操作
      cmReadWrite     对数据库可读写操作
      cmShareDenyRead  禁止其他用户对数据库读操作
      cmShareDenyWrite  禁止其他用户对数据库写操作
      cmShareExclusive  禁止其他用户对打开数据连接
      cmShareDengNone  禁止其他用户对数据库任何操作

     ADOConnection的主要方法:

    1. BeginTrans
           开始启动一个新的事务,必须保证数据连接处于激活状态。
    2. Cancel
           关闭于数据库的连接。
    3. CommitTrans
           向数据库提交一个事务。提交成功后,再事务中对数据库所作的修改则写入数据库中,同时一个事务也结束。
    4. Execute(constCommandText:Widestring;VarRecordsAffected;Executeoptions:TexcuteOptions=[eoExecuteNoRecords]);
      执行一个CommandText类型的SQL命令,其中,CommandText是指定的SQL命令;ReardsAffected指定该命令设计的记录数目;ExecuteOptions指定命令特征如下:
      ExecuteOption的值及说明
      参数 说明
      eoAsyncExecute 异步执行命令
      eoAsyncFetch 给定了Cache属性的值后,在异步地去数据
      eoAsyncFetchNonBlocking 非阻塞式线程执行
      eoExecuteNoRecords 没有返回记录
    5. GetProcedureNames(List:Tstring);
           获取数据库服务器上的存储过程名称,获取的存储过程名称在List参数中。
    6. GetTableNames(List:Tstring;SystemTables:Boolean=False);
           获取数据库中的数据表,获取的表名存放在List参数中SystemTables参数指示是否获取数据库系统表的名称。数据库系统表是指在数据库中关于数据库数据类型定义和用户信息的数据表,这种系统表是数据库本身自动生成的。
    7. Open(const UserID:widestring;constPassword:widestring)                          
           打开一个连接,参数UserID是数据库用户的用户名。Password是用户登录数据库的密码。
    8. RollbackTrams
           撤回一个没有全部执行的事务。事务撤回之后,事务中所作的任何修改都不会写入数据库。

    ADOConnection的主要事件
    事件 说明
    AfterConnect  发生在一个连接建立之后
    AfterDisconnect 发生在断开连接之后
    BeforeConnect 发生在连接建立前
    BeforeDisconnect 发生在断开连接前
    OnBeginTranscomplete 发生在开始一个事务时
    OnCommitTranscomplete 发生在提交事务成功时
    OnConnectComplete 发生在连接完成时
    OnDisconnect 发生在断开时
    OnExecuteComplete 发生在一个命令执行后
    OnInfoMessage 发生在收到数据库的消息
    OnLogin 发生在用户登录数据库的时候
    OnRollbackTransComplite 发生在一个事务撤回之后
    OnWillConnect 发生在发出一个连接数据请求的时候
    OnWillExecute 发生在数据库收到一个SQL命令并将要执行之前

  • 相关阅读:
    进程二
    高德地图api的使用
    《架构即未来》读后感3
    三周总结
    性能战术:
    二周总结
    《 架构即未来》读后感2
    一周总结
    《架构即未来》读后感
    学生信息系统dao层
  • 原文地址:https://www.cnblogs.com/liessay/p/7270361.html
Copyright © 2011-2022 走看看