のこり日

さてamiさんの「のこり日」ですが、良い感じです。
問題は取り込む予定。
連休前だし不景気だしで、めっきり仕事量が減っていて予定表もスカスカ。
とりあえず、連休明けに予約しておいた歯医者の予定でも取り込んでみましたが…他はどうしよう。
【追記】
その後予定の追加をしようと、再び予定表の取り込みダイアログを開いたら、いきなりエラーとなってリセットとなってしまいました。
リセットの直前にシステムのエラーダイアログが表示されるので見てみると、1904年0月0日の日付が不正みたいなエラーが出ています。このダイアログを閉じるといきなりリセット。
リセット後、再び「のこり日」を開き再度予定表の取り込みをしようとすると同じエラーが再現。

この現象をプログラマ的頭脳で解析すると、予定表DBから読み込んだレコードが不正でエラーとなるようです。
日付から分かるのは、DBから読み込んだ日付の生データが00H 00H 00Hなんでしょう(いなあもエンジニアリング予定表DBの構造参照)。

さて、こうなると原因はおのずと見えてきます。
PalmPIMデータベースは、デバイス上から削除してもレコードが物理的に削除されるわけではなく、無効データの塊としてDB上には残ってます。
このレコードを読み込んだ場合日付は00H 00H 00Hとなっていたはず。それをそのまま日付データに変換しようとすると、僕が今回体験したようなエラーに遭遇する事でしょう。

なお、現時点でこのエラーを回避するためにはデバイスHotSyncを行えばOKです。
HotSyncを行う事で、PIMのDBにある削除済みレコードは物理的に削除されるので、エラーは発生しなくなります。

ちなみに、この文章を書いている間にamiさんのサイトを覗いてみたら、正式版がアップされていました。
一応、上記の現象にも対応済みとの事。
早速DLして削除レコード込みの予定表DBを食わせてみたのですが、エラーダイアログは表示されなくなりましたがDBの取り込みも出来なくなりました。
でも、プログラムを終了しようとしたら、律儀にリセットしました。

という訳で、amiさん、まだバグが残ってます。たぶん…。

もう一度、DatebookDBから抽出した日付データをToDateファンクションに渡す前のロジックを見直す必要があるかもしれません。

以上、でしゃばりテスターのいなあもでした。
(^人^;)ゴメン