本文介绍了在C ++程序中操作数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试 { nFlag = 1 ; sql.Format(_T(" 从slptext中选择*,其中slptext.CountryID =(从Country = \的国家/地区中选择CountryID %s \')"),m_langname); m_pRecordset-> Open(sql,CADORecordset :: openUnknown); sql.Format(_T(" 从Country = \'%s \'" 的国家/地区选择*) ,m_langname); m_pRecord-> Open(sql,CADORecordset :: openUnknown); m_pRecord-> GetFieldValue( 0 ,countryID); 如果(!(m_pRecordset-> IsBOF()))// 若记录集指针未指向数据库中的首元素 { m_pRecordset-> MoveFirst(); // 则将其指向首元素位置 } while (!m_pRecordset-> IsEOF()) { m_pRecordset-> GetFieldValue( 2 ,origTxt); 如果(origTxt == sEng&&(origTxt!= _T(" " ))){ nFlag = 0 ; break ; } m_pRecordset-> MoveNext(); } 如果(nFlag == < 0 ){/// /////////////////// m_pRecordset-> SetFieldValue( 3 ,sOL); m_pRecordset-> Update(); // AfxMessageBox(_T(插入翻译文本数据库成功!")); } 其他 { m_pRecordset-> AddNew(); m_pRecordset-> SetFieldValue( 0 ,countryID); m_pRecordset-> SetFieldValue( 1 ,szHash); m_pRecordset-> SetFieldValue( 2 ,sEng); m_pRecordset-> SetFieldValue( 3 ,sOL); m_pRecordset-> Update(); // AfxMessageBox(_T(插入新记录数据库成功!")); } } 捕获(_ com_error * e) { // MessageBox(e-> ErrorMessage()); CString errMsg; errMsg.Format(_T(" 数据库操作失败:%s,%s" ),e-> ; ErrorMessage(),e-> Description()); AfxMessageBox(errMsg); } m_pRecordset-> Update(); m_pRecordset-> Close(); m_pRecord-> Close(); m_pRecord = NULL; m_pRecordset = NULL;
为什么此区域出现一些错误??????????????并且还查看是否打开了连接都没有?如果是,则说明已给出方法.检查是否已声明一个类以声明所使用的所有变量.
try { nFlag = 1; sql.Format(_T("select * from slptext where slptext.CountryID = (select CountryID from country where Country=\'%s\')"),m_langname); m_pRecordset->Open(sql,CADORecordset::openUnknown); sql.Format(_T("select * from country where Country=\'%s\'"),m_langname); m_pRecord->Open(sql,CADORecordset::openUnknown); m_pRecord->GetFieldValue(0,countryID); if(!(m_pRecordset->IsBOF()))//若记录集指针未指向数据库中的首元素 { m_pRecordset->MoveFirst();//则将其指向首元素位置 } while (!m_pRecordset-> IsEOF()) { m_pRecordset->GetFieldValue(2,origTxt); if (origTxt == sEng && (origTxt != _T(""))){ nFlag = 0; break; } m_pRecordset->MoveNext(); } if (nFlag==0) {////////////////////// m_pRecordset->SetFieldValue(3, sOL); m_pRecordset->Update(); //AfxMessageBox(_T("插入Translate Text数据库成功!")); } else{ m_pRecordset->AddNew(); m_pRecordset->SetFieldValue(0, countryID); m_pRecordset->SetFieldValue(1, szHash); m_pRecordset->SetFieldValue(2,sEng); m_pRecordset->SetFieldValue(3, sOL); m_pRecordset->Update(); //AfxMessageBox(_T("插入新记录数据库成功!")); } } catch(_com_error *e) { //MessageBox(e->ErrorMessage()); CString errMsg; errMsg.Format(_T("数据库操作失败:%s,%s"),e->ErrorMessage(),e->Description()); AfxMessageBox(errMsg); } m_pRecordset->Update(); m_pRecordset->Close(); m_pRecord->Close(); m_pRecord = NULL; m_pRecordset = NULL;
why this area emerge some errors???
解决方案
这篇关于在C ++程序中操作数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!