急啊!Dao中如何处理日期型数据??? 使用Access库,用COleVariant,SetFieldValue(),GetFieldValue(),如何读出和写入日期型数据?请给个范例,谢谢!!!!!!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对 COleVariant 值进行转换即可,下面是转换的小函数,十分简单:日期到变体VARIANT SetVariate(DATE date){ COleDateTime tm=COleDateTime(date); COleVariant vtN=tm ; return (VARIANT)vtN;}变体到日期DATE VariateToDate(VARIANT &vt){ return vt.date;}DATE 类型的使用应该没有问题吧! 这是我用的OleDB的代码,也给你参考吧inline bool ValueParser_ForDate (DBTYPE typeThe, LPVOID lpvValue, COleDateTime *pdtValue){ if (NULL == lpvValue) return false; COleDateTime dtTemp; switch (typeThe) { default : { return false; break; } // 日期时间(DBTYPE_FILETIME在OLEDBVER >= 0x0200时) case DBTYPE_DATE :dtTemp =GetValueDateDate((DATE*)lpvValue); break; case DBTYPE_DBDATE :dtTemp =GetValueDateDBDate(DBDATE*)lpvValue, NULL); break; case DBTYPE_DBTIME :dtTemp =GetValueDateDBDate(NULL, (DBTIME*)lpvValue); break; case DBTYPE_DBTIMESTAMP:dtTemp =GetValueDateDBStamp ((DBTIMESTAMP*)lpvValue); break; case DBTYPE_FILETIME :dtTemp =GetValueDateFiletime((FILETIME*)pdtValue); break; } if (NULL != pdtValue) *pdtValue = dtTemp; return true;} #define BAD_DATE COleDateTime(1906,05,04, 03,02,01)#define NULL_DATE COleDateTime(1901,01,01, 01,01,01)COleDateTime CDBExtractContentHelper::GetValueDateDBDate (DBDATE *pdtValueDate, DBTIME *pdtValueTime){ TRY { if (NULL==pdtValueDate && NULL==pdtValueTime) return BAD_DATE; COleDateTime dtTemp = DBDATE_DBTIME_DEFAULT_DATE; if (NULL != pdtValueDate) dtTemp.SetDate (pdtValueDate->year, pdtValueDate->month, pdtValueDate->day); if (NULL != pdtValueTime) dtTemp.SetTime (pdtValueTime->hour, pdtValueTime->minute, pdtValueTime->second); return dtTemp; } CATCH_ALL (e) { return BAD_DATE; } END_CATCH_ALL}COleDateTime CDBExtractContentHelper::GetValueDateDBStamp (DBTIMESTAMP *pdtValue){ TRY { if (NULL == pdtValue) return BAD_DATE; return COleDateTime ( pdtValue->year, pdtValue->month, pdtValue->day, pdtValue->hour, pdtValue->minute, pdtValue->second ); } CATCH_ALL (e) { return BAD_DATE; } END_CATCH_ALL}COleDateTime CDBExtractContentHelper::GetValueDateDate (DATE *pdtValue){ TRY { if (NULL == pdtValue) return BAD_DATE; return COleDateTime(*pdtValue); } CATCH_ALL (e) { return BAD_DATE; } END_CATCH_ALL}COleDateTime CDBExtractContentHelper::GetValueDateFiletime (FILETIME *pdtValue){ TRY { if (NULL == pdtValue) return BAD_DATE; return COleDateTime(*pdtValue); } CATCH_ALL (e) { return BAD_DATE; } END_CATCH_ALL} 请问怎么读取当前屏幕有内容的cdc? 关于vc中资源销毁的简单问题 探讨一下双网卡对UDP数据收发效率的影响 想做一个类似visio风格的界面,请问。。。 有关DOS的批处理---在线等待 急! 急!!! 急!!!!! 请问各位:在作系统开发时都用些什么辅助工具(100来者有分) 怎样在程序中用动画光标(ANI) MFC 控件坐标 鼠标坐标 将原位图拷贝到坐标区 坐标变化 关于 图像处理后产生的未知线! 我需要您!!!!!!!!! 文件读写的问题,关于fwrite,如何删除旧有文件里的记录? 实在是不行了!我太笨了!!!!请高手指点!
日期到变体
VARIANT SetVariate(DATE date)
{
COleDateTime tm=COleDateTime(date);
COleVariant vtN=tm ;
return (VARIANT)vtN;
}
变体到日期DATE VariateToDate(VARIANT &vt)
{
return vt.date;
}DATE 类型的使用应该没有问题吧!
{
if (NULL == lpvValue)
return false;
COleDateTime dtTemp;
switch (typeThe)
{
default :
{
return false;
break;
} // 日期时间(DBTYPE_FILETIME在OLEDBVER >= 0x0200时)
case DBTYPE_DATE :dtTemp =GetValueDateDate((DATE*)lpvValue); break;
case DBTYPE_DBDATE :dtTemp =GetValueDateDBDate(DBDATE*)lpvValue, NULL); break;
case DBTYPE_DBTIME :dtTemp =GetValueDateDBDate(NULL, (DBTIME*)lpvValue); break;
case DBTYPE_DBTIMESTAMP:dtTemp =GetValueDateDBStamp ((DBTIMESTAMP*)lpvValue); break;
case DBTYPE_FILETIME :dtTemp =GetValueDateFiletime((FILETIME*)pdtValue); break;
} if (NULL != pdtValue)
*pdtValue = dtTemp; return true;
}
#define NULL_DATE COleDateTime(1901,01,01, 01,01,01)
COleDateTime CDBExtractContentHelper::GetValueDateDBDate (DBDATE *pdtValueDate, DBTIME *pdtValueTime)
{
TRY
{
if (NULL==pdtValueDate && NULL==pdtValueTime)
return BAD_DATE; COleDateTime dtTemp = DBDATE_DBTIME_DEFAULT_DATE;
if (NULL != pdtValueDate)
dtTemp.SetDate (pdtValueDate->year, pdtValueDate->month, pdtValueDate->day); if (NULL != pdtValueTime)
dtTemp.SetTime (pdtValueTime->hour, pdtValueTime->minute, pdtValueTime->second); return dtTemp;
}
CATCH_ALL (e)
{
return BAD_DATE;
}
END_CATCH_ALL
}COleDateTime CDBExtractContentHelper::GetValueDateDBStamp (DBTIMESTAMP *pdtValue)
{
TRY
{
if (NULL == pdtValue)
return BAD_DATE; return COleDateTime
(
pdtValue->year, pdtValue->month, pdtValue->day,
pdtValue->hour, pdtValue->minute, pdtValue->second
);
}
CATCH_ALL (e)
{
return BAD_DATE;
}
END_CATCH_ALL
}COleDateTime CDBExtractContentHelper::GetValueDateDate (DATE *pdtValue)
{
TRY
{
if (NULL == pdtValue)
return BAD_DATE; return COleDateTime(*pdtValue);
}
CATCH_ALL (e)
{
return BAD_DATE;
}
END_CATCH_ALL
}COleDateTime CDBExtractContentHelper::GetValueDateFiletime (FILETIME *pdtValue)
{
TRY
{
if (NULL == pdtValue)
return BAD_DATE; return COleDateTime(*pdtValue);
}
CATCH_ALL (e)
{
return BAD_DATE;
}
END_CATCH_ALL
}