连接数据库时 CTime对象的初始化!!在线等求助!!

时间:2021-09-09 17:28:13
对话框应用程序,在主窗口打开的时候以list的形式显示数据库表中ProjectInfo的信息,通过ODBC 和SQL server连接,MFC自动向导生成了和ProjectInfo绑定的ODBC使用类,我在主窗口的初始化中用下面的代码访问数据库:
        
        CDatabase m_db;
CProjectInfo m_project;
m_db.Open(_T("tmDSN"));
m_project.m_pDatabase = &m_db;
m_project.Open(); 

系统运行会爆出错误:

Expression:_atl_condVal 查了网上资料好像是是说CTime类的对象初始化出了问题。
重新检查代码,在MFC自动生成的ProjectInfo中,构造函数是这样的:

CProjectInfo::CProjectInfo(CDatabase* pdb)
: CRecordset(pdb)
{
m_pID = "";
m_pName = "";
m_pStart;
m_pEnd;
m_pDescribe = "";
m_pManager = "";
m_nFields = 6;
m_nDefaultType = dynaset;
}

请问,应该怎么解决呢?弄了1天了还没解决……着急啊!谢谢各位大牛!

6 个解决方案

#1


try catch捕获一下错误看什么信息

#2


m_pStart是CTime吗,把所有CTime的初始化都删了就行了。

#3


引用 2 楼 zyq5945 的回复:
m_pStart是CTime吗,把所有CTime的初始化都删了就行了。


在建表的时候,选择的是datetime类型,删除了m_pStart和m_pEnd的初始化,还是不行……

#4


加异常捕获吧,下断点自己跟下程序是在那而挂掉的。
try
{
// odbc
}
catch(CDBException * pEx)
{
pEx->ReportError();
pEx->Delete();

#5


关注高分,帮顶。

#6


学习中,帮顶

#1


try catch捕获一下错误看什么信息

#2


m_pStart是CTime吗,把所有CTime的初始化都删了就行了。

#3


引用 2 楼 zyq5945 的回复:
m_pStart是CTime吗,把所有CTime的初始化都删了就行了。


在建表的时候,选择的是datetime类型,删除了m_pStart和m_pEnd的初始化,还是不行……

#4


加异常捕获吧,下断点自己跟下程序是在那而挂掉的。
try
{
// odbc
}
catch(CDBException * pEx)
{
pEx->ReportError();
pEx->Delete();

#5


关注高分,帮顶。

#6


学习中,帮顶