数据窗口检索数据问题
在pb8.0自带的sybase数据库中建立了一个包含风速,时间(datetime)两个字段的表,现想根据输入的年月日然后对照时间(datetime)字段中的年月日在DateWindow中检索出符合条件的数据.程序如何编写,谢谢帮助 问题点数:30、回复次数:17Top
1 楼xingxing(xingxing)回复于 2002-09-08 20:08:50 得分 2
可以用retrieve(argument)
也可以用setfilter(argument)Top
2 楼gaolon(pulsar)回复于 2002-09-08 20:13:23 得分 0
前辈:
我是新手,多帮忙,问题是,如根据年月日对照datetime中的年月日找出结果
程序怎样写Top
3 楼are2000(棒棒)回复于 2002-09-08 20:21:23 得分 0
在数据窗口画板里进入数据源,定义一个类型为datetime的检索参数。在script里得到输入的时间赋值给一个datetime类型的变量a,然后retrieve(a)。Top
4 楼joss(季节...夏至)回复于 2002-09-08 20:26:34 得分 2
数据源检索参数设置
日期 = 参数
在窗口中retrieve(你要过滤的日期)
就这样Top
5 楼gaolon(pulsar)回复于 2002-09-08 21:15:14 得分 0
are2000前辈,您的方法欠托,你没有考虑到a中的时间和字段中的时间问题
Top
6 楼are2000(棒棒)回复于 2002-09-08 21:20:45 得分 15
你在数据库里定义的是date类型还是datetime类型的。
数据库里的date类型对应pb里的date类型,
数据库里的datetime类型对应pb里的datetime类型Top
7 楼gaolon(pulsar)回复于 2002-09-08 21:24:58 得分 0
are2000前辈:
数据库中的时间字段是datetime类型的
而我输入的检索条件是date类型的Top
8 楼are2000(棒棒)回复于 2002-09-08 21:27:10 得分 0
哦,我知道你的意思了。
那你在定义两个检索参数吧,starttime,endtime,用时间字段 >= :starttime and 时间字段 <= :endtime。
在script里
date inputdate
datetime starttime,endtime
starttime = datetime(inputdate)
endtime = datetime(inputdate,time('23:59:59'))
retrieve(starttime,endtime)
Top
9 楼are2000(棒棒)回复于 2002-09-08 21:28:29 得分 0
hoho,别再叫我前辈了,怎么听怎么象小日本。Top
10 楼ice2water(冰冻三尺)回复于 2002-09-08 21:36:36 得分 3
如果只是日期型,建议转换为字符型进行比较:
检索代码:
string ls_date
ls_date = sle_1.text
retrieve(ls_date)
在设计dw时在where中使用convert()函数:
convert(char(10),datetime字段,111) = :ls_date
ls_date为dw中定义的变量。
Top
11 楼gaolon(pulsar)回复于 2002-09-08 21:46:37 得分 0
处于礼貌,见谅了
按照您的说法,只需在clickde事件中加上你的程序就可以了?
可是不对啊Top
12 楼are2000(棒棒)回复于 2002-09-08 21:49:35 得分 0
需要在对应的数据窗口对象的数据源中定义相应的检索参数和检索条件。
检索参数:starttime,endtime
检索条件:时间字段 >= :starttime and 时间字段 <= :endtime。
Top
13 楼gaolon(pulsar)回复于 2002-09-08 22:03:13 得分 0
are2000(土狗)
可能我太笨,还是出不来,你帮我看看
date inputdate
inputdate=date(em_1.text)
starttime = datetime(inputdate)
endtime = datetime(inputdate,time('23:59:59'))
SELECT "日最大风速"."风速",
"日最大风速"."当时风向",
"日最大风速"."出现时间"
FROM "日最大风速"
WHERE ( "日最大风速"."出现时间" >= :starttime ) AND
( "日最大风速"."出现时间" <= :endtime )
dw_3.retrieve(starttime,endtime)Top
14 楼are2000(棒棒)回复于 2002-09-08 22:14:00 得分 0
SELECT "日最大风速"."风速",
"日最大风速"."当时风向",
"日最大风速"."出现时间"
FROM "日最大风速"
WHERE ( "日最大风速"."出现时间" >= :starttime ) AND
( "日最大风速"."出现时间" <= :endtime )
这段去了。
打开datawindow对象
在数据源中定义相应的检索参数和检索条件。
检索参数:starttime,endtime
检索条件:时间字段 >= :starttime and 时间字段 <= :endtime。Top
15 楼juwuyi(我有,我可以)回复于 2002-09-08 22:15:02 得分 5
在数据窗口里定义两个参数date1,date2
query sql模式下:
Where Tab:
"日最大风速"."出现时间" between :date1 and :date2
检索代码里写
datetime date1,date2
date1=DateTime(today(),"00:00:00")
date1=DateTime(today(),"23:59:59")
dw_1.retrieve(date1,date2)
-------------------------------------\
这招包试包灵!Top
16 楼gaolon(pulsar)回复于 2002-09-08 22:40:33 得分 0
juwuyi(深白色)
不明白您的意思??能否解释Top
17 楼wj_mailbox(aaa)回复于 2002-09-08 23:46:47 得分 3
也可以不用定义检索参数
string sj
open(w_input_sj)
sj = message.stringparm
if sj= '' then return
dw_1.modify("datawindow.table.select=~""+oldsql+"where sj='"+sj+"'~"")//可以多加几个参数
dw_1.retrieve()
具体时间的设置可以参看楼上的帖子。Top




