首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问查询日期为null时,赋值给smalldatetime变量出错有关问题

2012-03-07 
请教查询日期为null时,赋值给smalldatetime变量出错问题with frmDM.ADOslt dobeginclosesql.Clearsql.Ad

请教查询日期为null时,赋值给smalldatetime变量出错问题
with frmDM.ADOslt do
  begin
  close;
  sql.Clear;
  sql.Add('select max(OutDate)as OutDate from t_OutDetail');
  open;
  end;
  if frmDM.ADOslt.RecordCount>0 then
  parameters.ParamByName('@EndDate').Value :=frmDM.ADOslt.fieldbyname('OutDate').AsDateTime//出错的代码行
  else
  parameters.ParamByName('@EndDate').Value :=trunc(now)+1;

上面的代码当t_OutDetail表中没有数据,查询出来的是Null,这时执行parameters.ParamByName('@EndDate').Value :=frmDM.ADOslt.fieldbyname('OutDate').AsDateTime会出错,显示'将数据类型转换为samlldatetime时出错'
判断条件得怎么写呢?

[解决办法]
怎么打开了记录集还要进行参数赋值??

Select max(OutDate)...怎么会返回Null的呀??
除非你OutDate这一列内容全都是空的...

不过要判断,这样就行了:
 if frmDM.ADOslt.FieldByName('OutDate').isNull then
showmessage('空资料')

热点排行