在C ++程序中操作数据库 [英] manipulate database in c++ program

查看:166
本文介绍了在C ++程序中操作数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 尝试
                {
                    nFlag =  1 ;
                    sql.Format(_T(" ),m_langname);
                    m_pRecordset-> Open(sql,CADORecordset :: openUnknown);
                    sql.Format(_T(" 的国家/地区选择*) ,m_langname);
                    m_pRecord-> Open(sql,CADORecordset :: openUnknown);

                    m_pRecord-> GetFieldValue( 0 ,countryID);

                    如果(!(m_pRecordset-> IsBOF()))// // 则将其指向首元素位置
                    }


                     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(" ),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???

解决方案

Had you created connection to the database? And also see whether the connection is opened are not? if yes you had given means.Check whether you had declared an class to declare all the the variables that you are using.


这篇关于在C ++程序中操作数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆