如何在c ++中从sql server ce保存和检索日期值? [英] How does one save and retrieve date values from sql server ce in c++?
问题描述
如何在c ++中从sql server ce保存和检索日期值?
好的。我必须以SYSTEMTIME结构的形式从month_cal控件获取日期并保存到sqlserver ce数据库。我该怎么做。
我想添加如下所示的参数,但不知道如何构造变量值。因为它是一个日期参数我正在创建,在formate dd / mm / yyyy中添加一个字符串是否有意义?
另外,我需要从数据库中获取保存日期并使用它来更新使用系统时间的月份控件。我该怎么办?考虑到c ++没有日期数据类型(我知道sql server确实),检索日期值
相关的输入代码片段是:
Cmd - >参数 - >追加(Cmd-> CreateParameter(_bstr_t(_T(Name)),adDate,adParamInput,-1,_variant_t(SOME_VALUE_WHOSE_C ++ _ TYPE_IS_UNKNOWN_TO_ME)));
相关的输出代码片段是:
SOME_UNKNOWN_C ++ _ TYPE_TO_ME结果=( SOME_UNKNOWN_C ++ _ TYPE_TO_ME)Rs-> Feilds-> Item [0] - > Value;
How does one save and retrieve date values from sql server ce in c++?
Ok.I have to get date from month_cal control in form of a SYSTEMTIME structure and save into sqlserver ce database.How do I do this.
I thought of adding a parameter like shown below but don't know how to construct the variant value.Since it a date parameter I am creating, does adding a string in the formate dd/mm/yyyy make sense?
Also, I need to get saved date from data base and use it to update a monthcal control using systen time.How do I retrive the date value considering that c++ has no date data type(I know sql server does)
Relevant input code fragment is:
Cmd->Parameters->Append(Cmd->CreateParameter(_bstr_t(_T("Name")),adDate,adParamInput, -1, _variant_t(SOME_VALUE_WHOSE_C++_TYPE_IS_UNKNOWN_TO_ME)));
Relevant output code fragment is:
SOME_UNKNOWN_C++_TYPE_TO_ME Result = (SOME_UNKNOWN_C++_TYPE_TO_ME)Rs->Feilds->Item[0]->Value;
推荐答案
你应该总是使用DateTime
数据库中的类型。永远不要使用字符串来存储日期,因为它会产生比解决更多的问题。您可以使用COleDateTime
类 [在C ++中 ^ ]。
You should always useDateTime
types in your database. Never use strings for storing dates, as it creates more problems than it solves. You can use theCOleDateTime
Class[^] in C++.
_variant_t
类有日期
成员。由于日期存储为double值,因此必须使用使用相同编码的日期时间类型,例如COleDateTime
和DATE
。然后你可以设置日期值:
The_variant_t
class has adate
member. Because dates are stored as double values, you must use a datetime type that uses the same encoding likeCOleDateTime
andDATE
. Then you can assigne the date value:
SYSTEMTIME st;
COleDateTime odt(st);
_variant_t vt;
vt.vt = VT_DATE;
vt.date = odt;
DATE dt;
::SystemTimeToVariantTime(&st, &dt);
vt.vt = VT_DATE;
vt.date = dt;
这篇关于如何在c ++中从sql server ce保存和检索日期值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!