解读动态SQL语句的编程(3)_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:SQL Server 2008 层次ID数据类型
目录 准备工作1 练习:使用HierarchyID数据类型2 准备工作 预计完成本实验所需的时间 40 分钟 目标 在完成本实验后,您将可以: 处理SQL Server 2008当中的层次ID数

使用这种方法同样可以为各参数赋值,而且更加直观一些。

17.4.3 使用Datasource属性为参数赋值

上述两种方法的共同特点是:我们在为各参数赋值时,我们是知道各参数对应的具体参数值的。而在具体的应用程序中,有些参数值常常是无法确定的,例如参数值来自于另一个查询结果,对于这种情况,Delphi提供了使用Datasource属性为动态SQL 语句中尚存在没有赋值的参数时, Delphi 会自动检查 TQuery 部件的 Datasource 属性, 如果为Datasource属性设置了属性值(该属性的值是另一个TDatasource部件的名字),Delphi 会把没有赋值的参数与TDatasource部件中的各字段比较,Delphi 会将相应的字段值赋给与其相匹配的参数,利用这种方法也能实现所谓的连接查询,我们在学习使用TTable部件时,便会创建主要--明细型数据库应用,用TQuery部件创建的连接查询与主要- -明细型应用是相似的。

例如:在如图17.7所示的应用中,设置了下列部件:

● 一个TTable部件

名字为Cust,它的DatabaseName属性为DEMOS,TableName属性为Customer。

● 一个TDatasource部件

名字为Custsource,其Dataset属性被设置为Cust。

● 一个TQuery部件

名字为ORDERS,其DatabaseName被设置为DEMOS,SQL属性值为:

Select Orders.CustNo,Orders.OrderNo,Orders.SaleDate FROM Orders

WHERE Orders.CustNo =: CustNo

ORDERS的DataSouce属性被设置为CustSource

● 一个TDatasource部件

名字为OrderSource,其DataSet属性被设置为Orders。

● 两个TDBGrid部件

它们分别连接CustSource和OrderSource。


TQuery部件Orders中的动态SQL语句中的参数:CustNo在程序设计过程中没有给它赋值,当该应用程序运行时Delphi会自动地到其Datasource属性中说明的数据源CustSource中查找与参数:CustNo匹配的字段,而CustSource中正好有一个名字为 CustNo 的字段与参数:CustNo匹配,这样Customer表中的CustNo字段值被赋给了参数 : CustNo , 而当每移动Customer表中的记录指针,参数:CustNo的值会随之改变,而参数:CustNo的值发生改变时,Orders中的动态SQL语句会根据新的参数值重新查询,从数据库表中获取相应的订单数据,这样也变实现了类似于主要--明细型应用。即连接查询。

分享:如何将SQL2000数据库升级到SQL2005
装个SQl2005可真不容易啊!先是出错,再是装完了没有企业管理器。我查了好久查出: SQL2005简易版的没有Microsoft SQL Server Management Studio Express还要再装。还是到这里下吧

共3页上一页123下一页
来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2009-08-02
相关Mssql数据库教程