急!! 100分!!Value assigned to 'Date2' never used; Value assigned to 'Date1' never used;

klasd00 2008-06-19 11:45:49
procedure TFormCommonQuery.Button1Click(Sender: TObject);
var
sqlstr:string;
Date1:TDate;
Date2:TDate;
Function FormatStringDate(s :string):String;
begin
FormatStringDate:=Copy(S,1,4)+'-'+Copy(S,5,2)+'-'+Copy(S,7,2);
end;
begin
ShortDateFormat:='yyyy-mm-dd';
DateSeparator:='-';


if Edit5.Text <> '' then
begin
try
strtoint(Edit5.Text);
Except
SHowmessage('输入的必须为8位数字');
edit5.SetFocus;
Edit5.SelectAll;
exit;
end;
if Length(edit5.Text) = 8 then

date1 := strtodate(FormatStringDate(Edit5.text))
else
begin
showmessage('输入的不是有效日期,正确形式如20080101');
edit5.SetFocus;
edit5.SelectAll;
exit;
end;

if Edit6.Text <> '' then
begin
try
strtoint(Edit6.Text);
Except
SHowmessage('输入的必须为8位数字');
edit6.SetFocus;
edit6.SelectAll;
exit;
end;

if Length(edit6.Text) = 8 then

date2 := strtodate(FormatStringDate(Edit5.text))
else
begin
showmessage('输入的不是有效日期,正确形式如20080101');
edit6.SetFocus;
edit6.SelectAll;
exit;
end;

with query1 do
begin
close;
SQL.Clear;
SQL.add('select PlanInfo.ID,PlanInfo.Name,Money,TimePlan,TimePlanStart,TimePlanEnd,PlanInfo.PersonDuty,Place,Introduce,TimeStart,Progress,TimeEnd from PlanInfo,ProInfo where PlanInfo.ID =ProInfo.ID AND');
SQl.add('convert(varchar(10),TimePlanStart,120) >:date1 AND convert(varchar(10),TimePlanEnd,120) <:date2');
Open;
end;
end
...全文
190 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ImJaden 2010-12-04
  • 打赏
  • 举报
回复
我遇到类似的问题了。不过勉强解决
klasd00 2008-06-19
  • 打赏
  • 举报
回复
我使用了10楼方法,但运行时报错:varchar转换float时出错 大侠们帮小弟解解 ,感激涕零
zdlou 2008-06-19
  • 打赏
  • 举报
回复
如10楼
SQl.add('convert(varchar(10),TimePlanStart,120) >:date1 AND convert(varchar(10),TimePlanEnd,120) <:date2');

你这里用了宿主参数,要先为参数赋个值
klasd00 2008-06-19
  • 打赏
  • 举报
回复
varchar转换float时出错????
gzmhero 2008-06-19
  • 打赏
  • 举报
回复
with query1 do
begin
close;
SQL.Clear;
SQL.add('select PlanInfo.ID,PlanInfo.Name,Money,TimePlan,TimePlanStart,TimePlanEnd,PlanInfo.PersonDuty,Place,Introduce,TimeStart,Progress,TimeEnd from PlanInfo,ProInfo where PlanInfo.ID =ProInfo.ID AND');
SQl.add('convert(varchar(10),TimePlanStart,120) >:date1 AND convert(varchar(10),TimePlanEnd,120) <:date2');
ParamByName('date1').Value:=Date1;
ParamByName('date2').Value:=Date2;

Open;
end;
klasd00 2008-06-19
  • 打赏
  • 举报
回复
我是新手 帮忙把语句写出来,谢谢 比较急
阿发伯 2008-06-19
  • 打赏
  • 举报
回复
SQl.add('convert(varchar(10),TimePlanStart,120) >:date1 AND convert(varchar(10),TimePlanEnd,120) <:date2');
==============================================================================================
上面的date1和date2只是在SQL中产生了2个参数,与变量Date1和Date2毫不相干。应该在上面这句语句后面为参数赋值,然后再打开query
klasd00 2008-06-19
  • 打赏
  • 举报
回复
SQl.add('convert(varchar(10),TimePlanStart,120) >:date1 AND convert(varchar(10),TimePlanEnd,120) <:date2'); 这种写法有错吗??Date1 Date2未使用?
gyk120 2008-06-19
  • 打赏
  • 举报
回复
那就全部删掉,反正这两个变量你也没用过
gyk120 2008-06-19
  • 打赏
  • 举报
回复
赋值了,但是你的两个Date没有用过,你就把data1和data2赋值了,但是之后就没管了
klasd00 2008-06-19
  • 打赏
  • 举报
回复
我需要这段语句,但显示是Date1 Date2未使用,怎么解决?
阿发伯 2008-06-19
  • 打赏
  • 举报
回复
Date1和Date2没有使用,删除这2个变量就行了
Corn1 2008-06-19
  • 打赏
  • 举报
回复
这种提示是属于“Hint”的,不用理他,对程序运行没影响的。
意思是,在程序里没有使用Date1, Date2这两个值。一般编译器会自动优化掉的。
klasd00 2008-06-19
  • 打赏
  • 举报
回复
TimePlanStart和TimePlanEnd在表中是varchar(20)类型
Corn1 2008-06-19
  • 打赏
  • 举报
回复
这种提示是属于“Hint”的,不用理他,对程序运行没影响的。
意思是,在程序里没有使用Date1, Date2这两个值。一般编译器会自动优化掉的。
klasd00 2008-06-19
  • 打赏
  • 举报
回复
多谢15楼
也谢谢给小弟意见的 很及时 谢谢 给分
galant2008 2008-06-19
  • 打赏
  • 举报
回复
你是什么转float出错?
DumDum 2008-06-19
  • 打赏
  • 举报
回复
with query1 do
begin
close;
SQL.Clear;
SQL.add('select PlanInfo.ID,PlanInfo.Name,Money,TimePlan,TimePlanStart,TimePlanEnd,PlanInfo.PersonDuty,Place,Introduce,TimeStart,Progress,TimeEnd from PlanInfo,ProInfo where PlanInfo.ID =ProInfo.ID AND');
SQl.add('convert(varchar(10),TimePlanStart,120) >:date1 AND convert(varchar(10),TimePlanEnd,120) <:date2');
ParamByName('date1').Value:=datetostr(Date1);
ParamByName('date2').Value:=datetostr(Date2);
Open;
end;

你的查询条件里面已经轮换成串类型了'convert(varchar(10),TimePlanStart,120)
gzmhero 2008-06-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 klasd00 的回复:]
我使用了10楼方法,但运行时报错:varchar转换float时出错 大侠们帮小弟解解 ,感激涕零
[/Quote]

不关Date1,Date2的事,应该是你的convert(varchar(10)....)有问题。不用转换,直接

SQl.add('TimePlanStart >:date1 AND TimePlanEnd <:date2');

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧