一、dbexpress组件
     其组件下含以下控件,用于进行数据库操作

     1.SQLconnection:故名思义,用于建立数据库连接(相当于ASP中的conn)。相关参数以对话框方式输入,也可通过object inspector进行修改。D7功能强大,可以连接包括MSSQL在内的6种流行数据库:DB2,informix,interbase,MSsql,Mysql,Oracle。以SQL为例,以下参数应注意:
          (1) LoginPrompt:false/true,是否显示登录对话框,默认为false,程序调试时,建议设为true.
          (2) connected,是否建立连接,默认为false,调试时建议改为true.

     2.SQLdataset,通过此组件,可以建立数据集(相当于ASP中的recordset)。一般情况下,通过select语句生成一数据集,以供客户端使用,重要参数设置次序和说明如下:
          (1)第一步:SQLConnection:设定数据库连接
          (2)第二步:commandtype:可选参数有三种ctquery(默认,生成SQL查询:select,update,delete),ctstoreproc(执行存储过程),cttable(生成数据表),一般情况下,建议用ctquery.
          (3)commandtext:执行的SQL命令,须手工输入:如select * from bmxx
          (4)Params:SQL动态参数列表,如果commandtext的命令中用到了动态参数:select * from bmxx where id=:bmid,则在Params中自动出现bmid参数,系统要求对bmid的参数进一步设置,如数据类型等
          (5)Active:仅有两个参数
                  flase:相当于ASP中的RS.close()
                  true:相当于ASP中的RS.open()

     3.SQLQuery:可以看成是强化版的SQLdataset(commandtext=Ctquery),在程序设计中,多用于对数据表的增删更新操作(Add Delete Update),重要参数说明如下:
          (1)第一步:SQLConnection:设定数据库连接
          (2)第二步:SQL:执行的SQL命令,须手工输入:如delete from bmxx1 where bmid=10 等,
          (3)第三步:Params:SQL动态参数列表,如果SQL命令中用到了动态参数:select * from bmxx where id=:bmid,则在Params中自动出现bmid参数,系统要求对bmid的参数进一步设置,如数据类型等
          (4)第四步:Active:仅有两个参数
                  flase:相当于ASP中的RS.close()
                  true:相当于ASP中的RS.open()

    4.SQLStoreProc可以看成是强化版的SQLdataset(commandtext=Ctstoreproc),用于调用数据库里的存储过程,重要参数说明如下:
          (1)第一步:SQLConnection:设定数据库连接
          (2)第二步:StoreProcNmae:调用的存储过程名称,系统自动从数据库中取得存储过程名列表
          (3)第三步:Params:SQL动态参数列表,如果存储过程中用到了动态参数:那么Params中会自动出现相关参数。
          (4)第四步:Active:仅有两个参数
                  flase:相当于ASP中的RS.close()
                  true:相当于ASP中的RS.open()

    5.SQLtable可以看成是强化版的SQLdataset(commandtext=Cttable),用于数据库里的数据表的操作,相关参数如:indexFieldNmae,IndexNmae,MasterFields,MasterSource

    6.SQLMonitor:方便程序员观察SQL命令执行情况的调试工具

    7.SimpleDataSet,允许dbExpress修改数据的组件,可以结合Delphi的数据感知组件以访问数据

delphi数据库教程自学(2) By 风轻扬兮 发表于 2007-4-4 23:12:00 

    利用SQLconnection/SQLdataset/clientdataset/datasetprovider/datasource/dbnavigator建立可更新的数据集

1)建立SQLconnection(设置loginprompt:false,connected:true)===>SQLconnection1
      说明:建立远程数据库的连接
2)建立SQLdataset(设置SQLconnection:SQLconnection1,commandtext:select * from bmxx)==>SQLdataset1
      说明:建立远程数据库的远程记录集
3)建立Datasetprovider(设置其dataset:SQLdataset1)===>datasetprovider1
      说明:将此记录集通过datasetprovider保存到本地缓存中
4)建立Clientdataset(设置其ProviderName:datasetprovider1,active:true)
      说明:从本地缓存中建立本地记录集
5)建立datasource(在Clientdataset1上右击,选择Add fields,拖至表单上)==>datasource1
      说明:显示本地记录集的记录对象
6)设置dbnavigator(设置datasource:dataspurce1)
      说明:对本地记录集记录进行操作控制
-----------------------------------------------------------------------------------------------------------------------
经过上述操作,由于操作对象是本地缓存中的记录集,故dbEXpress单向游标的限制已经解决,通过dbnavigator组件,可以新增、修改、删除相关记录数据,但此时的操作仅对于本地缓存的记录集有效新增、修改、删除等操作的结果实际上并未更新于后台
-----------------------------------------------------------------------------------------------------------------------
如果需要更新后台数据,还必须调用Clientdataset1.Applyupdate(0)方法来进行

其过程比较复杂,但是建议在考虑性能时,最好采用此种方法

 

Delphi数据库教程自学(3) By 风轻扬兮 发表于 2007-4-5 8:11:00 

SimpleDataSet的用法

第二讲曾经学习过,在建立可更新的数据集方面,我们通过四步来实现的
1)建立远程数据库连接sqlconnction1
2)建立远程记录集sqldataset1
3)将远程记录集导入至本地datasetprovider1
4)在本地缓存中寻对应记录集对象clientdataset1

对于一般的应用而言,这个过程比较繁琐,Delphi提供了一种简易建立本地可更新记录集的方法,即simpledataset,此方法简化了建立本地可更新数据集的过程,在对于小的应用时,如在不过分考虑性能的前提下,可通过此方法,快速建立可更新本地记录集。其过程和设置如下:
1)建立远程数据库连接sqlconnction1
2)建立simpledataset1,其重要参数如下:
     (1)Connection:其设置同sqlconnction.(上述第一步)
     (2)Dataset:其设置同sqldataset1.(上述第二步,注意,Active设为true)

回顾一下快速建立datasource1和DBNavigator的过程
1)双击simpledataset1,点右键,选择filed editor,在field editor中点右键,选择add all fields(CTRL+F)
2)选中所有字段(CTRL+L),拖至表单上,然后调整一次相关位置即可(可用CTRL+A全选,Shift+点击选择)
到此datasource及其字段的输入输出设置完成
3)建立DBNavigator,直接拖至表单上即可,设置一下其datasource为datasource1

利用simpledataset建立本地可更新数据源到此完成。
同样如果要更新远程数据表记录,必须调用simpledataset1.applyupdate(0)方法。

小结
simpledataset是一种经过简化后的建立本地可更新数据集的方法,相较dataset+datasetprovider+clientdataset方法而言,它较为便捷,但这是以牺牲数据库性能为代价的。
故在有一定性能要求的数据库设计中,不推荐使用,在日常学习中,可以经常使用simpledataset

delphi数据库自学教程(4) By 风轻扬兮 发表于 2007-4-5 8:50:00 

TSimpledataset中的重要参数
1)dataset--------commandtype
     有三个参数:(1)ctquery-----------执行SQL语句
                             (2)ctstoreproc------调用远程数据库中的存储过程
                             (3)cttable------------访问指定数据表中的所有数据
2)Active特性/Execute方法
      (1)仅用于执行返回结果数据集的SQL语句,如select .....的SQL语句,设置Active属性为true=调用了

Tsimpledataset的open方法,设为false=调用了Tsimpledataset的close方法
      (2)执行不返回结时数据集的SQL语句,例如Delete,Update,Insert或是DDL语句
3)PacketRecords,
      一次从远程数据源中取得的记录数,说明如下:
        -1 默认值,即一次性取出全部远程数据,建议10-100,应尽量避免造成网络拥挤。
        0 取出远程数据表的元数据(描述数据的信息)
       正数:指定数量
4)Data特性
     用于暂时存储远程取得的数据集
5)Delta特性
    用于暂时存储已经修改的数据

考虑到更大的控制能力和性能因素,建议在应用系统开发时,应尽可能避免用simpledataset,而采用
sqlconnetion+sqldataset+datasetprovider+clientdataset的方法来控制和访问相关数据