本文介绍了在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 ++程序中操作数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 15:33