1、实验四 在 Delphi 中连接数据库1. Delphi 访问数据库的基本方法ADO(ActiveX Data Object)是 Microsoft 提供对各种数据库进行访问的高层接口,是 DAO/RDO 的后继产物,是Microsoft 最新的数据访问组件(Microsoft 数据访问组件简称MDAC)的一部分 。ADO 是基于 OLE DB 之上的面向对象的数据访问模型,OLE DB 是 Microsoft 开发的一种高性能的、基于 COM 的数据访问技术,其作用是向应用程序提供一个统一的数据访问方法,而不需要考虑数据源的具体格式和存储方式。 2. 进入 Delphi3. 选择 ADO 页
2、面:4. 选择 ADOTable 组件,置于窗体中。TADOTable 组件用于通过一个单个的数据表来获取和操作数据集。TADOTable 组件和 TTable 组件非常类似,许多属性、事件和方法也一样。如果不使用 TADOConnection 组件,TADOTable 组件的 ConnectionString 属性就需要设定;如果使用 TADOConnection 组件,那么 ConnectionString 属性就不需要设定,直接设定其 Connection 属性使其指向TADOConnection 组件即可。 设置 ADOTable1 的属性:ConnectionString;Table
3、Name;ActiveMasterSource5. 选择 Data Access 页面,选择 DataSource 组件,置于窗体中。TDataSource 组件是使用最多的数据访问组件,用来连接数据集组件和数据控制组件。TDataSource 组件的属性比较少,最重要 的是 DataSet 属性。该属性指出要与哪一个数据集组件建立联系,它的属性值是某一个数据集组件。 6. 设置 DataSource1 的属性:DataSet 为 ADOTable1。7. 选择 Data Controls 页面,选择 DBGride 控件,置于窗体中。 常用的数据控制组件 8. 设置 DBGride1 的属性
4、: DataSource 为 DataSource1。9. 选择 Data Controls 页面,选择 DBNavigator 控件,置于窗体中。10. 设置 DBNavigator1 的属性:DataSource 为 DataSource1。11. 运行12. 其中:ADOTable 组件亦可以 ADOQuery 组件或 Data Access 页面的 Table 组件,Query 组件替代。13. ADODataSetTADODataSet 组件是最常用的 ADO 数据集组件,具有从一个或多个 ADO 数据表中找到结果数据集的功能。结果数据集可以是直接从数据表中读取的,也可以是通过 SQ
5、L 语句从一个或多个数据表得到的。另外 TADODataSet 组件还可以用来处理调用 TADOCommand 对象的 Execute 方法返回的结果记录集。 TADODataSet 组件的常用属性:1. RDSConnection 属性 2. BlockReadSize 属性 3. CacheSize 属性 4. CanModify 属性 5. CursorType 属性 6. EnableBCD 属性7. Filter 属性 8. Filtered 属性 9. IndexDefs 属性 10. IndexFieldCount 属性11. IndexFieldNames 属性 12. Ind
6、exFields 属性13. IndexName 属性 14. LockType 属性 15. MarshalOptions 属性 16. MasterFields 属性 17. MaxRecords 属性 18. RecNo 属性 19. RecordCount 属性 20. Recordset 属性21. RecordsetState 属性 22. RecordSize 属性23. RecordStatus 属性 24. Sort 属性 25. StoreDefs 属性 TADODataSet 组件的常用方法 1. GetIndexNames 方法从表记录集中取得所用可用的索引名列表 2.
7、 BookmarkValid 方法该方法用来测试特定的书签是否合法,书签就是一个记录的标志3.CancelBatch 方法使用该方法将取消批更新模式下对记录集的所有挂起的更新 4. CancelUpdates 方法使用该方法可取消挂起的缓存更新 5. DeleteRecords 方法删除记录集中的一个或多个记录6. FilterOnBookmarks 方法该方法的作用是过滤记录到某个书签的位置7. IsSequenced 方法该方法用来返回底层数据库是否将记录的个数作为记录的序号。8. Locate 方法该方法用来根据一个或多个字段的值查找记录,并把查找到的记录设置为当前记录。 9. Look
8、up 方法该方法用来从数据集中查找记录,从查找到的记录中提取某些字段值10. Next 方法该方法用来把记录指针移到下一条记录11. Requery 方法该方法用来重新执行产生记录集的查询命令以便重新生成记录集12. Seek 方法该方法用来根据索引查找记录 13. UpdateBatch 方法该方法用来把挂起的批更新写到物理数据库中14. UpdateStatus 方法该方法用来返回当前记录的更新状态 TADODataSet 组件的常用事件 14. ADOConnectionTADOConnection 组件用于建立与实际的物理数据库的连接,TADOCommand、TADODataSet 、
9、TADOTable、TADOQuery、TADOStoredPro 等组件均可以通过它访问和操作数据库。15. 主从表MasterSource16. 公共的数据库对象模块 DataModule17. ADOQuery 组件TADOQuery 组件类似于 Query 组件,可以使用 SQL 语句在一个和多个数据表中选择字段,而且可以增加和删除数据。在使用该组件之前,必须要建立它到物理数据库之间的连接。如果不使用 TADOConnection 组件,TADOQuery 组件的ConnectionString 属性就需要设定;如果使用 TADOConnection组件,那么 ConnectionSt
10、ring 属性就不需要设定,直接设定其Connection 属性使其指向 TADOConnection 组件即可。 SQL 属性:用来指定利用 TADOQuery 组件来执行的SQL 语句。 RowsAffected 属性:用来返回最近一次执行查询操作时影响到的记录数,即被操作的记录数。 1) ADOQuery1:= TADOQuery.Create(nil)ADOQuery1.Connection:=2)ADOQuery1.close;ADOQuery1.SQL.add(select * from orders where orderid=:par1);ADOQuery1.Parameter
11、s.ParamByName(par1).Value:=Edit1.Text;ADOQuery1.open;3)ADOQuery1.close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.add(select * from orders where orderid=+Edit1.Text+);ADOQuery1.open;4)ADOQuery1.close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.add(select * from orders where orderid=+Edit1.Text);ADOQuery1.open;5)ADOQue
12、ry1.close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.add(insert into t2 values (:p1,:p2,:p3);ADOQuery1.Parameters.ParamByName(p1).Value:=Edit1.Text;ADOQuery1.Parameters.ParamByName(p2).Value:=Edit2.Text;ADOQuery1.Parameters.ParamByName(p3).Value:=Edit3.Text;ADOQuery1.ExecSQL;ADOQuery1.close;ADOQuery1.SQL.Clear;ADOQuery1.sql.text:=select * from t2;ADOQuery1.open;6)ADOQuery1.RecordCount=0ADOQuery1.EofADOQuery1.FirstADOQuery1.NextADOQuery1.AppendADOQuery1.EditADOQuery1.DeleteADOQuery1.Post