mfc - 从 vb 到 mfc 的 dao 属性
问题描述
我已经在 c++ 中实现了 vb 功能,我在 c++ 中替换了以下逻辑,但它给出了问题:
我必须从 VB 转换为 c++,并且 c++ 中的代码在获取属性时崩溃。
原VB代码:
For Each loTDef In aoDBUser.TableDefs
Set loProp = Nothing
On Error Resume Next
Set loProp = loTDef.Properties("Description")
If Not loProp Is Nothing Then
If loProp.Value = TEMP_TABLE Then
End If
End If
Next
新的 C++ 代码:
CString test::Property()
{
//
// OVERVIEW:
// Get the value for the given Custom Property
//
DAOProperties *pColProp = NULL;
DAOProperty *pProp = NULL;
CDaoDatabase cDBase;
cDBase.Open(CV_GetUserDatabasePath(_T("TEST.mdb")));
CString strDbVer;
DAOProperties* pPrp = 0;
DAOProperty* pRev = 0;
try
{
if ( !cDBase.IsOpen() )
return(_T(""));
DAO_CHECK(cDBase.m_pDAODatabase->get_Properties(&pPrp));
if ( pPrp != 0 )
{
COleVariant varRevVal;
COleVariant varName(_T("Description"), VT_BSTRT);
DAO_CHECK(pPrp->get_Item(varName, &pRev));//crashing going to catch
if (pRev != 0)
{
DAO_CHECK(pRev->get_Value(&varRevVal));
pRev->Release();
pRev = 0;
}
pPrp->Release();
pPrp = 0;
strDbVer = V_BSTRT(&varRevVal);
}
}
catch (...)
{
}
cDBase.Close();
}
一些它是如何崩溃的 DAO_CHECK(pPrp->get_Item(varName, &pRev));
但我无法弄清楚为什么会发生这种情况。
解决方案
推荐阅读
- java - 只允许指定的命令名,但仍然允许附加参数
- javascript - 在 Next.js 中为导航链接添加活动类
- python - 如何在 jupyter notebook 中转换标签?
- sql - postgres 中的数据库链接正在查看另一个本地主机图像:关系表名不存在
- ruby-on-rails - Azure DevOps - 自动运行 rails 迁移
- c++ - 如何使用带有函数作为参数的可变参数函数并将它们传递给指针
- css - 在 Rails 中高效加载 CSS 和 JS(“为所有静态资产使用 CDN”)
- powershell - 使用公司代理远程调用 Invoke-WebRequest 的问题
- python - 浮点除以零 Python
- c# - 如何在 Windows 10 中使用 C# 将程序固定到任务栏