关于筛选数据的问题!(50分)

  • 主题发起人 主题发起人 回音壁
  • 开始时间 开始时间
'where size:=aa'?笔误?
 
别忘了把ADOQuery的prepare属性设成True
 
你说这个‘aa'参数到底指的是什么呢?
 
应该是where size = :aa
aa是变量名。就是后面让你用来放参数的
 
SQL.Add('where size=:aa');
 
就是啊,我的数据库字段名就是size,而'aa'是指向size的参数变量啊~!你说怎么会
不行呢?
 
你贴出来的where语句是错误的
应该是where size = :aa
另外,你Query的prepared属性设成True了吗?
 
with blueprint_priceQuery do
begin
close;
SQL.Clear;
SQL.Add('select * from blueprint_price ');
SQL.Add('where size=:aa');
Parameters.Refresh;
Parameters.ParamByName('aa').Value:=combobox2.Text;
Prepared;
ExecSQL;
end;

我照你的改了,还是依然如故啊!
 
在object inspector里把query的prepared属性改成true也不行?
你这样改似乎prepared晚了一点
还有ADO似乎要装补丁的。查一下以前的贴子吧!类似的问题我好像也看到过
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=947697

你是说这个帖子啊?还有我装了ado补丁,没用!
 
在4个combobox的OnChange事件中写:
var
s: string;
begin
with adodataset1 do
begin
s := ' and ';
if combobox1.itemindex>=0 then
s := 'FieldA='''+combobox1.text+'''';
if combobox2.itemindex>=0 ten
s := s + ' and FieldB='''+combobox2.text+'''';
if combobox3.itemindex>=0 then
s := s + ' and FieldC='''+combobox3.text+'''';
if combobox4.itemindex>=0 then
s := s + ' and FieldD='''+combobox4.text+'''';
if length(s)>5 then s := ' where '+copy(s, 6, $ffffffff) else s := '';
commandtext := 'select ShowField from Table '+s;
open;
if not isempty then
label1.caption := fields[0].asstring
else label1.caption := '不存在';
close;
end;
end;
 
后退
顶部