C++ 时间变量错误的GetFieldValue

C++ 时间变量错误的GetFieldValue,c++,visual-c++,mfc,C++,Visual C++,Mfc,我声明了以下结构,以保存通过getfieldvalue从access db检索到的数据: 错误出现在Spds_old->Time_old.push_back(OldTime);在DB中,该值为下午3:00:00。 你能告诉我错误吗。非常感谢。如果你需要更多信息,请告诉我。 谢谢你-基兰 typedef struct { std::vector<CString> pname_old; std::vector<CDBVariant> Date_

我声明了以下结构,以保存通过getfieldvalue从access db检索到的数据: 错误出现在Spds_old->Time_old.push_back(OldTime);在DB中,该值为下午3:00:00。 你能告诉我错误吗。非常感谢。如果你需要更多信息,请告诉我。 谢谢你-基兰

typedef struct {
        std::vector<CString> pname_old;
        std::vector<CDBVariant> Date_old;
        std::vector<CDBVariant> Time_old;

    } Spd_old;

问题是
CDBVariant
无法复制,因此它不适合存储在
std::vector
中。一种解决方法是存储指针:

std::vector<std::unique_ptr<CDBVariant>> Date_old;
std::vector<std::unique_ptr<CDBVariant>> Time_old;
...
std::unique_ptr<CDBVariant> OldDate(new CDBVariant);
...
rset.GetFieldValue((short)1 , *OldDate);
...
Spds_old->Date_old.push_back(std::move(OldDate));
std::向量日期\u旧;
std::向量时间;
...
标准:唯一的旧日期(新的CDB变量);
...
rset.GetFieldValue((短)1,*OldDate);
...
Spds_old->Date_old.push_back(std::move(OldDate));

我在上面的示例中使用了
std::unique\u ptr
,但您也可以使用其他选项。

问题是
CDBVariant
无法复制,因此它不适合存储在
std::vector
中。一种解决方法是存储指针:

std::vector<std::unique_ptr<CDBVariant>> Date_old;
std::vector<std::unique_ptr<CDBVariant>> Time_old;
...
std::unique_ptr<CDBVariant> OldDate(new CDBVariant);
...
rset.GetFieldValue((short)1 , *OldDate);
...
Spds_old->Date_old.push_back(std::move(OldDate));
std::向量日期\u旧;
std::向量时间;
...
标准:唯一的旧日期(新的CDB变量);
...
rset.GetFieldValue((短)1,*OldDate);
...
Spds_old->Date_old.push_back(std::move(OldDate));

在上面的示例中,我使用了
std::unique\u ptr
,但您也可以使用其他选项。

您是否尝试过运行SQL查询?程序中的getfieldvalue没有问题,它成功了,但问题出在push Back,您是否尝试过从变量中提取日期时间变量,并将其直接存储在向量中?您是否尝试过运行SQL查询?程序中的getfieldvalue没有问题,它成功了,但问题是在push Back中您是否尝试过从变量中提取日期时间变量,并将其直接存储在向量中?谢谢。它起作用了。我还可以使用哪些其他指针?出现错误,无法访问私有成员。也许我需要把他们转移到全球。我会试着把它修好。感谢You@user1783998:有关要使用的指针类型的信息,请参阅。至于这个错误,我看不到所有的代码,所以你必须提供更多的信息。谢谢你的链接,我会检查一下并给你回复。再次感谢,谢谢。它起作用了。我还可以使用哪些其他指针?出现错误,无法访问私有成员。也许我需要把他们转移到全球。我会试着把它修好。感谢You@user1783998:有关要使用的指针类型的信息,请参阅。至于这个错误,我看不到所有的代码,所以你必须提供更多的信息。谢谢你的链接,我会检查一下并给你回复。再次感谢你。