数据库查询(50分)

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

sanji

Unregistered / Unconfirmed
GUEST, unregistred user!
我在查询上用了两个datetimepicker,然后与库中的日期字段的值做比较,
要求字段中的日期如果在datetimepicker1和datetimepicker2之间
则将记数器加一,直到table1.eof=true为止.
求源码,望大家赐教!
 
1、
with Table1 do
begin
Count:=0;
First;
while not eof do
begin
if (FieldByName('FieldA').AsDateTime>=DateTimePicker1.Date) and
(FieldByName('FieldA').AsDateTime<=DateTimePicker2.Date) then
Inc(Count);
Next;
end;
end;

2、
SQL.Text:='Select count(*) from MyTable'
+' where FieldA>=:Date1'
+' and FieldB<=:Date2'
 
如使用SQL SERVER

WITH TABLE1 DO
BEGIN
INDEXFIELDNAMES:='FIELDA';
SETRANGESTART;
FieldByName('FieldA').AsDateTime=DateTimePicker1.Date;
SETRANGEEND;
FieldByName('FieldA').AsDateTime=DateTimePicker2.Date;
APPLYRANGE;
COUNT:=RECORDCOUNT;
END;

如为PARADOX库,建一索引
 
别多说了,李颖的方法2最佳
 
接受答案了.
 
后退
顶部