请问怎么弄存储过程里的可选参数~~

时间:2022-10-26 20:22:29
procedure WriteWorkLog(LogText: string; SetTime: TDateTime);
var
  Files: TextFile;
  Path: string;
  NowTime: TDateTime;
begin
  if 传入时间 then
     NowTime := 传入时间
  else
     NowTime := Now;
  LogText:=DateTimeToStr(Now)+' Log: '+LogText;
  Path := ExtractFilePath(Paramstr(0))+'SysRunLog.txt';
end;


想在传入时间的时候就用传入的,没传入的话就用now

2 个解决方案

#1


你传入的时候,就该区分开,不要在这里区分,这里只管 SetTime的值就行了

#2


SetTime是传入时间吗?

1.在传入时就处理,那么就不用理会SetTime是什么了,直接NowTime:=SetTime
2.传入一个很小的日期,再判断SetTime小于某日期,就用NOW
3.可以把SetTime改成字符类型,判断是否空值或特定的字符就用NOW,否则就是StrToDateTime(SetTime)

最好方法还是第1种

#1


你传入的时候,就该区分开,不要在这里区分,这里只管 SetTime的值就行了

#2


SetTime是传入时间吗?

1.在传入时就处理,那么就不用理会SetTime是什么了,直接NowTime:=SetTime
2.传入一个很小的日期,再判断SetTime小于某日期,就用NOW
3.可以把SetTime改成字符类型,判断是否空值或特定的字符就用NOW,否则就是StrToDateTime(SetTime)

最好方法还是第1种