J
jonyhuang
Unregistered / Unconfirmed
GUEST, unregistred user!
编制一个对SQL数据库查询时,想根据用户的选择(如:单位代码,姓名,编号,用户可以
从三个变量中选择一个到三个条件任意进行组合查询.
1.设置 TQuery 的 SQL属性
select fields from tab_pi
where (field1 = :name1 or :field1 = '')
and (field2 = :name2 or :field2 = '')
and (field3 = :name3 or :field3 = '')
.
.
.
(field1,2,3是需查询的字段名,name1,2,3是代表它的名称,field1,2,3对应name1,2,3)
2.设置 TQuery 的 params属性
把刚才建立的 name1,2,3的属性设好(data type 和 value(随便输入))(不须管它)
3.在程序中
with queryxxx do
begin
if active then close;
条件1
parambyname('name1').asstring(asintege等):=输入的查询值
条件2
parambyname('name2').asstring(asintege等) :=输入的查询值
条件3
parambyname('name3').asstring(asintege等):=输入的查询值
open;
end;
这段程序在查询本地的数据库时,用tquer通过没问题,但在用tadoquery查询服务器上的sql
表时就编译同不过,显示:[Error] testsongUnit.pas(61): Undeclared
identifier: 'parambyname'错误,用tquer却无法连上服务器,请问如何处理。谢谢!
jonyhuang
从三个变量中选择一个到三个条件任意进行组合查询.
1.设置 TQuery 的 SQL属性
select fields from tab_pi
where (field1 = :name1 or :field1 = '')
and (field2 = :name2 or :field2 = '')
and (field3 = :name3 or :field3 = '')
.
.
.
(field1,2,3是需查询的字段名,name1,2,3是代表它的名称,field1,2,3对应name1,2,3)
2.设置 TQuery 的 params属性
把刚才建立的 name1,2,3的属性设好(data type 和 value(随便输入))(不须管它)
3.在程序中
with queryxxx do
begin
if active then close;
条件1
parambyname('name1').asstring(asintege等):=输入的查询值
条件2
parambyname('name2').asstring(asintege等) :=输入的查询值
条件3
parambyname('name3').asstring(asintege等):=输入的查询值
open;
end;
这段程序在查询本地的数据库时,用tquer通过没问题,但在用tadoquery查询服务器上的sql
表时就编译同不过,显示:[Error] testsongUnit.pas(61): Undeclared
identifier: 'parambyname'错误,用tquer却无法连上服务器,请问如何处理。谢谢!
jonyhuang