TADOQuery的一个问题 |
尚未結案
|
sunyard
一般會員 ![]() ![]() 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
請問各位先進 var
T1,T2: TDatetime; ......................... T1:= Datetimepicker1.date; // Datetimepicker1)控件中录入的为'08-01-2004'
T2:= Datetimepicker2.date; // Datetimepicker1)控件中录入的为'08-10-2004'
with ADOQuery2 do
begin
close;
sql.Clear;
sql.text:='select jgamt.jgdm,jgbh.jgmc,jgamt.rj,jgamt.amt from jgamt,jgbh where jgamt.jgdm=:para1 and ( jgamt.rj between :para2 and :para3 ) and jgbh.jgdm=jgamt.jgdm order by jgamt.jgdm,jgamt.rj';//此外不会换行,请教?
Parameters.ParamByName('para1').Value:= ss;
Parameters.ParamByName('para2').Value:= T1;
Parameters.ParamByName('para3').Value:= T2;
active:= TRUE;
open;
end;
with DBGrid1.Columns do
begin
Items[0].Title.Caption:= '机构代码';
Items[1].Title.Caption:= '机构名称';
Items[2].Title.Caption:= '日期';
Items[3].Title.Caption:= '余额';
Items[0].FieldName:= 'jgdm';
Items[1].FieldName:= 'jgmc';
Items[2].FieldName:= 'rj';
Items[3].FieldName:= 'amt';
end; 可是在实际执行结果中,DBGrid1显示的ADOQuery1的查询结果,其日期范围却是从“08-02-2004”到“08-11-2004”,而不是
在Datetimepicker控件中的范围,总是多加了一天,为什么? 謝謝
|
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
sunyard
一般會員 ![]() ![]() 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
|
problemman
一般會員 ![]() ![]() 發表:7 回覆:25 積分:16 註冊:2003-04-11 發送簡訊給我 |
var //T1,T2: TDatetime; T1,T2: String; ......................... //T1:= Datetimepicker1.date; // Datetimepicker1)控件中录入的为'08-01-2004' T1:=FormatDateTime('yyyy/mm/dd',Datetimepicker1.Date); //T2:= Datetimepicker2.date; // Datetimepicker1)控件中录入的为'08-10-2004' T2:=FormatDateTime('yyyy/mm/dd',Datetimepicker1.Date); with ADOQuery2 do begin close; sql.Clear; sql.text:='select jgamt.jgdm,jgbh.jgmc,jgamt.rj,jgamt.amt from jgamt,jgbh where jgamt.jgdm=:para1 and ( jgamt.rj between :para2 and :para3 ) and jgbh.jgdm=jgamt.jgdm order by jgamt.jgdm,jgamt.rj';//此外不会换行,请教? Parameters.ParamByName('para1').Value:= ss; Parameters.ParamByName('para2').Value:= T1; Parameters.ParamByName('para3').Value:= T2; active:= TRUE; open; end; with DBGrid1.Columns do begin Items[0].Title.Caption:= '机构代码'; Items[1].Title.Caption:= '机构名称'; Items[2].Title.Caption:= '日期'; Items[3].Title.Caption:= '余额'; Items[0].FieldName:= 'jgdm'; Items[1].FieldName:= 'jgmc'; Items[2].FieldName:= 'rj'; Items[3].FieldName:= 'amt'; end;《觸不到的問題人》 來無影,去無踪, 問題總是一羅羅。 世上無難事,惟有『夾硬黎』 |
Miles
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言:請問各位先進 var T1,T2: TDatetime; ......................... T1:= Datetimepicker1.date; // Datetimepicker1)控件中录入的为'08-01-2004' T2:= Datetimepicker2.date; // Datetimepicker1)控件中录入的为'08-10-2004' with ADOQuery2 do begin close; sql.Clear; sql.text:='select jgamt.jgdm,jgbh.jgmc,jgamt.rj,jgamt.amt' 'from jgamt,jgbh' 'where jgamt.jgdm=:para1' 'and (jgamt.rj between :para2 and :para3 )' 'and jgbh.jgdm=jgamt.jgdm' 'order by jgamt.jgdm,jgamt.rj';//分行 Parameters.ParamByName('para1').DataType :=ftstring;参数类型 Parameters.ParamByName('para1').Value:= ss; Parameters.ParamByName('para2').DataType :=ftdate; Parameters.ParamByName('para2').Value:= T1; Parameters.ParamByName('para3').DataType :=ftdate; Parameters.ParamByName('para3').Value:= T2; active:= TRUE; open; end; with DBGrid1.Columns do begin Items[0].Title.Caption:= '机构代码'; Items[1].Title.Caption:= '机构名称'; Items[2].Title.Caption:= '日期'; Items[3].Title.Caption:= '余额'; Items[0].FieldName:= 'jgdm'; Items[1].FieldName:= 'jgmc'; Items[2].FieldName:= 'rj'; Items[3].FieldName:= 'amt'; end; 可是在实际执行结果中,DBGrid1显示的ADOQuery1的查询结果,其日期范围却是从“08-02-2004”到“08-11-2004”,而不是 在Datetimepicker控件中的范围,总是多加了一天,为什么? 謝謝 sunyard您好:试试看 |
sunyard
一般會員 ![]() ![]() 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
|
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
sunyard您好:
试试加多一个括号,检查书写有无错误,按理说,如果没分行能通过的话,分行后也应该没问题的,试试看
with ADOQuery2 do
begin
close;
sql.Clear;
sql.text:='select jgamt.jgdm,jgbh.jgmc,jgamt.rj,jgamt.amt'
'from jgamt,jgbh'
'where (jgamt.jgdm=:para1)'
'and (jgamt.rj between :para2 and :para3 )'
'and (jgbh.jgdm=jgamt.jgdm)'
'order by jgamt.jgdm,jgamt.rj';//分行 ——行径窄处,留一步与人行——
——Never give up, never surrender——
|
sunyard
一般會員 ![]() ![]() 發表:9 回覆:10 積分:3 註冊:2004-08-12 發送簡訊給我 |
Hi,deity:
加上括号后,提示语法错误,我实在不明白?
无奈改为:
sql.add('select jgamt.jgdm,jgbh.jgmc,jgamt.rj,jgamt.amt');
sql.add('from jgamt,jgbh');
sql.add('where jgamt.jgdm=:para1');
sql.add('and jgamt.rj between :para2 and :para3');
sql.add('and jgamt.jgdm=jgbh.jgdm');
后成功!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |