ADOのRecordBindingについてメモ

ADOのIADORecordBindingを利用して、レコードセットの値を取得する場合に、日付データのバインドの仕方がよく分からなかったので、色々と調べてみた。以下、それについてのメモ。


まず、バインドするには固定長の値をバインドするためのマクロを使用する。
ADO_FIXED_LENGTH_ENTRY()、もしくはADO_FIXED_LENGTH_ENTRY2()
DateTypeには、adDateを指定する。他にもadDBDateやadDBTimeStampとかあったが、これに対応する型が分からなかったし、また結果的にadDateで日付と時刻両方取得できていたので、これでよいと思われる。
バインドする変数は、DATE型の変数にする。DATE型の実体はdoubleで、整数部が日付、少数部が時刻を表しているようである。これをSYSTEMTIME型の変数に変換する場合には、VariantTimeToSystemTimeを使用する。