解决方案 »
- 界面是核心程序的问题
- 请教libtorrent的使用
- 招聘兼职VC++开发人员,有一套现成的程序需要长期维护和修正。
- 字符串问题:BSTR赋值给LPSTR
- 用ImageOle.dll在RichEditCtrl显示GIF时碰到的问题
- 有没有软件可以查看在局域网内是谁在下BT下载呀!
- 串口大虾请进:什么是TxD信号的BREAK状态?vc中如何实现?
- 关于CTreeCtrl树状控件的使用
- VC++ 不同窗体的编辑框怎么同步数据
- 刚做了一个3D小游戏,提意见者20分相送(共260分)
- 广西梧州幼儿园校车事故死者为留守儿童--为什么受伤的总是他们?!
- MFC 中如何让鼠标能拖动BUTTON控件或图片??急。
try
{
if(!m_pRecordset->Supports(adAddNew)) return;
m_pRecordset->AddNew();
m_pRecordset->Fields->GetItem(_variant_t("姓名"))->Value=_bstr_t("赵薇");
m_pRecordset->Fields->GetItem(_variant_t("性别"))->Value=_bstr_t("女");
m_pRecordset->Fields->GetItem(_variant_t("age"))->Value=_variant_t((short)20);
m_pRecordset->Fields->GetItem(_variant_t("marry"))->Value=_bstr_t("未婚");
m_pRecordset->Update();
}//try
catch (_com_error &e)
{
::MessageBox(NULL, "又出毛病了。","提示",MB_OK | MB_ICONWARNING);
}这种方法弄完了还要调用Update()。
方法二(带参数):_variant_t varName[4],narValue[4];
varName[0] = L"姓名";
varName[1] = L"性别";
varName[2] = L"age";
varName[3] = L"marry";
narValue[0]=_bstr_t("赵薇");
narValue[1]=_bstr_t("女");
narValue[2]=_variant_t((short)20);
narValue[3]=_bstr_t("未婚");
const int nCrit = sizeof varName / sizeof varName[0];// Create SafeArray Bounds and initialize the array
SAFEARRAYBOUND rgsaName[1],rgsaValue[1];
rgsaName[0].lLbound = 0;
rgsaName[0].cElements = nCrit;
SAFEARRAY *psaName = SafeArrayCreate( VT_VARIANT, 1, rgsaName );
rgsaValue[0].lLbound = 0;
rgsaValue[0].cElements = nCrit;
SAFEARRAY *psaValue = SafeArrayCreate( VT_VARIANT, 1, rgsaValue );// Set the values for each element of the array
HRESULT hr1=S_OK.hr2=S_OK;for( long i = 0 ; i < nCrit && SUCCEEDED( hr1 ) && SUCCEEDED( hr2 );i++)
{
hr1=SafeArrayPutElement(psaName, &i,&varName[i]);
hr2=SafeArrayPutElement(psaValue, &i,&narValue[i]);
}// Initialize and fill the SafeArray
VARIANT vsaName,vsaValue;
vsaName.vt = VT_VARIANT | VT_ARRAY;
vsaValue.vt = VT_VARIANT | VT_ARRAY;
V_ARRAY(&vsaName) = psaName;//&vsaName->parray=psaName;
//see definition in oleauto.h file.
V_ARRAY(&vsaValue) = psaValue;
// Add a new record:
m_pRecordset->AddNew(vsaName,vsaValue);//这种方法不需要调用Update,因为添加后,ADO会自动调用它。此方法主要是使用SafeArray挺麻烦。
http://www.codeproject.com/KB/database/caaadoclass1.aspx
现在又出新问题了,使用完后,提示遇到非法问题,需要关闭应用程序.
不知道怎么回事?
// 数据库操作都放到try{}catch(){}中去。
// 请获取详细错误信息/