首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证BeforePost - TField数据类型中的日期

如何验证BeforePost - TField数据类型中的日期
EN

Stack Overflow用户
提问于 2019-07-18 00:40:58
回答 1查看 178关注 0票数 1

我正在尝试验证用户输入,以确保用户在将日期发送(BeforePost事件)到数据库中的表之前,已经以DD/MM/YYYY格式输入了日期,如果没有,则中止。

这是针对Delphi-7的

这是我一直使用的代码

代码语言:javascript
复制
var
dateAudition : TDateTime;
begin
try
DateAudition := tblAudition.Field[4];
except
Abort;
end;
end;

我收到一个错误的TDateTime and Tfield are incompatible

EN

回答 1

Stack Overflow用户

发布于 2019-07-18 00:56:12

如果您的数据库字段(列)是DATEDATETIME,那么您不需要在OnBeforePost中执行任何操作-该字段不允许存储非日期值。

您得到的错误是因为TDataSet.Fields是一个TField数组,因此引用tblAudition.Fields[4]将产生一个TField,而您的代码试图将该TField赋给您已声明为TDateTime的变量。

如果您的列不是DATEDATETIME,并且确实需要验证,则需要首先将字段值(而不是字段本身)转换为正确的类型。像这样的东西应该是有效的:

代码语言:javascript
复制
var
  dateAudition: TDateTime;
begin
  try
    dateAudition := StrToDate(tblAudition.Fields[4].AsString);
  except
    Abort;  // This is wrong, BTW. It cancels without telling the user why
  end;
end;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57080667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档