お久しぶりでございます。
いつも、勉強させていただいています。
早速ですが、VBで言うところの
IsDate関数みたいな関数はあるのでしょうか?
ヘルプ等は見たんですけど、探せませんでした。
もしよろしかったら、ご教授ください。
宜しくお願いいたします。
StrToDateを使って文字列を日付に変換させると、正しい日付でなければ例外が発生します。
これを利用して、
try
dt1 := StrToDate(str1);
except
{ 日付でない }
end;
とすれば出来ます。
にしのさん。いつもいつもありがとうございます。
Str1が日付型で無いとエラーがでてしまいます。
Delphi の例外で停止のチェックをはずせばうまくいくんですが、
Delphi の例外で停止は、はずしても問題ないのでしょうか?
それと、Paradoxのテーブルの日付型のフィールドにNullを入力することはできるのでしょうか?
(Nullじゃなくても、値がクリアできればいいです。)
どうか宜しくお願いいたします。
例外で停止するのはデバッガだからです。
デバッガのオプションで、例外で停止しないようにしても、生成されるEXEには問題ありません。
日付をNULLにできると思いますよ。
Database Desktopを使用してクリアするとNULLになっています。
おはようございます。
にしのさん。いつもほんとにありがとうございます。
いまは、こんな感じで作ってます。
function IsDate(StrDate : String): Boolean;
var
RetDate : TDateTime;
begin
Result := True;
try
if StrDate = '' then
Result := False
else
RetDate := StrToDate(StrDate);
except
on E : EConvertError do begin
Result := False;
end else
raise;
end;
end;
これで、日付を調べて、戻ってきた値を見て
FieldByName('hiduke').AsDateTime := Null;
とすると、「バリアントの型変換が正しくありません」
というエラーがでます。
何故なのでしょうか?
にしのさん。ありがとうございました。
解決しました。
ツイート | ![]() |