当时问题的根本原因是没有搞清dbExpress,造成很大障碍,更要命的是当时在Kylix下使用的。 [
]
等现在返回头来看看就明白了。
dbExpress不支持数据缓存,所以数据绑定控件DBGrid就不能直接使用了。
jiangxiancheng老兄说的方法可以。用SQLClientDataSet可以。
不过在D7中没有了SQLClientDataSet,取而代之的是SimpleDataset。
时间不短了。
结贴了。
另贴一点关于dbExpress的资料,谢谢大家的关注。
---------
dbExpress 是Delphi 6.0 新加的功能,dbExpress是一个跨平台
的、不依赖于数据库的一个独立的层。它提供了一些方法用于动态SQL
的处理。它定义了一个接口用于访问不同的SQL 服务器,并为各种数
据库提供了驱动程序。
这些驱动程序在Windows和Linux下都能使用(Windows下为动态连
接库.DLL,而在Linux下为共享对象.so文件)。 这种API 驱动,减少
了数据库引擎需要的额外开销。
标准的dbExpress数据库应用是不使用数据缓存的,由于保持核心
运行时数据库访问层的简单和轻便。所以,dbExpress提供了高性能的
数据库连接,运行速度很高。但是,不用数据缓存将无法修改数据,
而且,指针的移动也是单向的。为了能够修改数据,dbExpress也提供
了一种使用数据缓存的控件,当然这无疑也会影响到效率。
目前在dbExpress能够应用的数据库有Qracle、MySQL、DB2和
InterBase,这里以InterBase 数据库为例。
一、单向的数据连接
实例数据库为Delphi提供的Employee.gdb。
1)加入 TSQLConnection
属性:
LoginPrompt=False 不用用户名和密码显示
DirverName=InterBase 驱动程序名
ConnectionName=IBLoca 默认数据库(Database.gdb)
Params 点对话框出现信息表,修改数据库的名字Employee.gdb
Connected=true 如果连接正确,将可以顺利的为true;
2)加入 TSQLDataset
属性:
SQLConnection=SQLConnection名字
CommandType=ctTable 用表名连接
CommandText=表名
Active=true 如果正确,将可以为true;
3)加入 TDataSource
属性:
DataSet=SQLDataSet名字
4)加入数据绑定控件,由于不用缓存,所以不能用DBGrid,这里只
用简单的DBEdit。
注意属性:
DataSource=DataSource名字
DataField=字段名
5)注意,SQLDataset移动指针只有两个方法
SQLdataset1.Next;
SQLdataset1.First;
这就可以运行了。
二、可以修改的数据连接
做一个主从结构的数据显示,要求从表是可以修改的,而且要用
DBGrid,所以,这里要用一个新的控件来联系:
TSQLClientDataSet
和TSQLDataset不同TSQLClientDataSet是使用数据缓冲区的,所
以,用它连接数据源可以修改,也可以用DBGrid显示。
和上面方法相同,加入TSQLConnection作数剧源。
属性:
LoginPrompt=False 不用用户名和密码显示
DirverName=InterBase 驱动程序名
ConnectionName=IBLoca 默认数据库(Database.gdb)
Params 点对话框出现信息表,改数据库名:Employee.gdb
Connected=true 如果连接正确,将可以顺利的为true;
1)做主表
加入 TSQLDataset
属性:
SQLConnection=SQLConnection1
CommandType=ctTable 用表名连接
CommandText=PROJECT (这是在Employee.gdb内的一个表)
Active=true 如果正确,将可以为true;
加入 TDataSource
属性:
DataSet=SQLDataSet1
加入数据绑定控件两个DBEdit,显示字段分别为PROJ_ID和
PROJ_NAME。
用同样的方法作两个指针移动的Button。
2)做从表
加入TSQLClientDataSet
属性:
SQLConnection=SQLConnection1
CommandType=ctTable 用表名连接
CommandText=PROJ_DEPT_BUDGET (这是在Employee.gdb内的另一个表)
Active=true (激活)
做主从连接
MasterSource=DataSource1
MasterFierds=PROJ_ID (连接字段)
加入 TDataSource
属性:
Name=DataSource2
DataSet=SQLClientDataSet1
加入DBGrid,与DataSource2连接。
这就完成了一个主从表制作,试验一下,可以发现从表是可以修改的。
仔细研究一下这个过程,归纳出设计的一般方法。一般来说,dbExpress
主要在网络中使用,特别是WebSnap 快速网络开发方法,给dbExpress 以很大
的施展空间。
[
]