读书人

三层构造中TClientDataSet 可选参数

发布时间: 2013-06-25 23:45:41 作者: rapoo

三层结构中TClientDataSet 可选参数
DataSnap三层结构,服务端定义了一个包含数个SQL参数的TSQLDataSet,这些参数在客户端都是可以手工输入的条件,现有这种情况,有些条件希望在不输的时候被忽略(即查询所有),但是SQLDataSet不允许参数为空,导致灵活性很差,如果放弃TSQLDataSet+SQL参数的模式而改成完全的SQL传递,那效率会大大损失,只是变更参数的查询比每次传递SQL语句查询快太多了
[解决办法]
你可以这样处理: 比如,根据厂商编号查采购入库单,如果厂商编号为空,代表查所有厂商的采购入库单。
中间层SQL语句:Select * from PurchaseMaster where SupplierID like :ID1
其中PurchaseMaster为采购入库单表,SupplierID为厂商编号, ID1为参数。
客户端:如果用户有输入查询条件:如‘Dell’,则参数ID1 赋值为‘Dell’。
如果用户没输入条件。则参数ID1赋值为‘%%’。

读书人网 >.NET

热点推荐