帮我看看这段代码,为什么不显示数据库内容?(20分)

  • 主题发起人 主题发起人 鹦鹉
  • 开始时间 开始时间

鹦鹉

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Ttongjiform.Button1Click(Sender: TObject);
begin
with query1 do
begin
close;
sql.Clear;
if checkbox1.Checked=true then
begin
sql.Add('select * from fakajilu where 发卡人=:发卡人');
params[0].asstring:=label1.Caption;
open;
end
else if checkbox2.Checked=true then
begin
sql.Add('select * from fakajilu where 发卡类型=:发卡类型');
params[0].asstring:=label2.Caption;
open;
end
else if checkbox3.Checked=true then
begin
sql.Add('select * from fakajilu where 发卡时间>=:发卡时间
and 发卡时间<=:发卡时间');
params[0].asdate:=strtodate(label3.Caption);
params[1].asdate:=strtodate(label4.Caption);
open;
end
else begin

open;
sql.Add('select * from fakajilu');
end;
end;
我在formshow的时候设置query1.active:=true;缺省的
sql:select * from fakajilu,当formshow的时候,dbgrid显示数据库中所有的
记录,但是我点击button1的时候,却不能显示内容。
什么地方做错了!?
 
在调试的时候是不是蹦叉?应该是下面这句话:
else begin
open;
sql.Add('select * from fakajilu');
end;
改为
else begin
sql.Add('select * from fakajilu');
open;
end;
 
不行,我试过了,这样修改不起作用,当我按下按钮的时候,
dbgrid就变为空的了
 
在编辑器其里面调试,我估计你一定蹦叉!
还有,参数尽量使用E文的,不要使用中文!
 
else begin

open;
sql.Add('select * from fakajilu');
end;
改为

else begin
sql.clear;
sql.Add('select * from fakajilu');
open;
end;
 
你的代码是先将sql给clear,然后还没写新的sql又open,
这时打开数据集,当然是空的了
语法问题
query1.close
query1.sql.clear;
query1.sql.add();
query1.sql.open;
 
你的数据感知控件的数据源设置正确了吗?
调试的时候有没有遇到错误提示?
 
各位老大,还是不行
 
你在Delphi里面运行,看在那里蹦叉![:D]
 
如果,你用的是ms sql,并且,你的发卡人,发卡类型是char型的话,
一定没结果。应改成varchar。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
755
import
I
后退
顶部