关于数据库的查询问题!(20分)

  • 主题发起人 主题发起人 stonelei
  • 开始时间 开始时间
S

stonelei

Unregistered / Unconfirmed
GUEST, unregistred user!
我建了一个表(借款抵押物表),其中两个为日期字段,我想查询该表这两个日期中的数据如果其中一个符合本月的在DBGRID中显示并打印出来,具体该如何做?
例如数据:

[抵押到期日] [保险到期日]
A 2002-01-01 2002-03-04
B 2002-02-03 2002-02-02
C 2002-03-03 2002-02-03

如果是一月,列GRID中就要显示A的数据,二月份就要显示B、C中的数据,如果
是三月份,就显示A跟C的数据,请问具体操作如何?
不知是不是这样:

select 借款抵押物表."抵押到期日",借款抵押物表."保险到期日" from "c:/借款抵押物表/data/借款抵押物表.db" as 借款抵押物表 where "c:/借款抵押物情况表/data/借款抵押物表.db"."抵押到期日"=:"抵押到期日" or "c:/借款抵押物情况表/data/借款抵押物表.db"."保险到期日"=:"保险到期日"

我想用一个BUTTON来查询,但这个语句写在BUTTON上却不行,我想在一个MASKEDIT上输入具体的月份也能查询出来又该如何操作?我是一个菜鸟,所以还望大侠指点迷津。先谢过了。
 
好久没有编码了[:(]
 
采用过滤机制。
不用添加任何SQL就可以。
 
我的QQ号码是16316850,我第一次来不会用这里东东,所以请在QQ里说好吗
 
你的语句有语法问题。

看看动态SQL查询。比如看帮助“TQUERY”控件把

楼上的,用静态过滤的无法达到他的要求。
 
大概就是这样把

Query1.Text := SQL语句;
Query1.ParamByName('dydqr').AsDatetime := ???;
Query1.ParamByName('bxdqr').AsDatetime := ???;
Query.Open;

SQL语句:
select 借款抵押物表."抵押到期日",借款抵押物表."保险到期日"
from "c:/借款抵押物表/data/借款抵押物表.db" as 借款抵押物表
where "c:/借款抵押物情况表/data/借款抵押物表.db"."抵押到期日"=:dydqr
or "c:/借款抵押物情况表/data/借款抵押物表.db"."保险到期日"=:bxdqr


 
procedure TForm1.Button1Click(Sender: TObject);
begin
with query1 do begin
Close;
SQL.Clear;
SQL.Add('select DYDATE,BSDATE from "date.db"');//DSTATE:抵押到期日;BSTATE:保险到期日
sql.add('where Extract(month from )=:d1');
sql.add('or Extract(month from BSDATE)=:d2');
Parambyname('d1').asinteger:=2;//2为输入的月份
ParamByName('d2').asinteger:=2;
open;
end;
end;
 
多人接受答案了。
 

Similar threads

后退
顶部