论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > VC >

B(VC)Vc物资毕业论文(排版)

  2.3 创建公用模块

在这个系统中,频繁地使用到了对数据库的访问,修改等操作,所以把针对数据库的一些公共操作集中起来,可以使代码更加规范和容易维护。在classview中,利用鼠标右键单击“cmaterial_misapp”项目,选择“add member variable”选项,然后依次添加这个工程中要使用到的变量: 内容来自www.paper51.com

public:

copyright paper51.com

CString m_sCurrentUser;

paper51.com

int m_iLoginCount;

copyright paper51.com

_RecordsetPtr m_pADOSet; paper51.com

private:

copyright paper51.com

_ConnectionPtrADOConn;              //定义ado数据库连接对象指针

http://www.paper51.com

选择 add member function添加函数 http://www.paper51.com

     boolADOExecute(_RecordsetPtr&ADOSet,_variant_&strSQL); paper51.com

最后手工添加一个外部变量的声明:

内容来自www.paper51.com

extern Cmaterial_MISApptheApp;

http://www.paper51.com

在visual  c++中进行数据库操作一定要引进ado类,所在把下面这段代码添加到这个工程中的stdafx.h中,才能对记录集进行操作。

内容来自www.paper51.com

#import "C:\Programfiles\common files\System\ado\msado15.dll" no_namespace \

内容来自www.paper51.com

rename("EOF","EndOfFile")\

copyright paper51.com

rename("LockTypeEnum","newLockTypeEnum")\ copyright paper51.com

rename("DataTypeEnum","newDataTypeEnum")\

copyright paper51.com

rename("FieldAttributeEnum","newFieldAttributeEnum")\

copyright paper51.com

rename("EditModeEnum","newEditModeEnum")\

paper51.com

rename("RecordStatusEnum","newRecordStatusEnum")\

http://www.paper51.com

rename("ParameterDirectionEnum","newParameterDirectionEnum")在cmaterial_misapp类的initistance()函数中添加如下代码: paper51.com

m_iLoginCount = 0;

copyright paper51.com

// 创建ADO连接对象 http://www.paper51.com

if( FAILED(::CoInitialize(NULL)) ) paper51.com

{

http://www.paper51.com

    AfxMessageBox("ADO Initfailed");

http://www.paper51.com

    returnfalse;

内容来自论文无忧网 www.paper51.com

}

内容来自www.paper51.com

try http://www.paper51.com

{ paper51.com

{ 内容来自www.paper51.com

           ADOConn.CreateInstance(__uuidof(Connection)); http://www.paper51.com

ADOConn->Open(_bstr_t("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+GetCurDir()+"ylz.mdb"),_bstr_t(""),_bstr_t(""),adModeUnknown); 内容来自www.paper51.com

       }

copyright paper51.com

       // 捕捉例外 paper51.com

       catch(_com_error&e) http://www.paper51.com

       { 内容来自www.paper51.com

               CStringerr; http://www.paper51.com

               err.Format("%s",(char*)(e.Description()) );

copyright paper51.com

               AfxMessageBox(err); copyright paper51.com

       }

内容来自论文无忧网 www.paper51.com

       catch(...) copyright paper51.com

       {

内容来自www.paper51.com

               AfxMessageBox("UnknownError..."); copyright paper51.com

       } http://www.paper51.com

       copyright paper51.com

       // 初始化ADO记录集

paper51.com

添加以上代码后,就完成了打开数据库的工作,同时添加下面的代码,来设置窗口的名称:

内容来自www.paper51.com

m_pMainWnd->SetWindowText(_T("物料管理信息系统")); 内容来自www.paper51.com

在函数中bool ADOExecute(_RecordsetPtr&ADOSet, _variant_t &strSQL)中添加如下代码: http://www.paper51.com

bool CMaterial_MISApp::ADOExecute(_RecordsetPtr&ADOSet, _variant_t &strSQL)

paper51.com

{ paper51.com

               if( ADOSet->State == adStateOpen) ADOSet->Close();

内容来自论文无忧网 www.paper51.com

              try paper51.com

              {

paper51.com

ADOSet->Open(strSQL, ADOConn.GetInterfacePtr(),adOpenStatic, adLockOptimistic, adCmdUnknown);

copyright paper51.com

                  return true;

内容来自论文无忧网 www.paper51.com

              } http://www.paper51.com

              catch(_com_error&e) 内容来自论文无忧网 www.paper51.com

       {

内容来自论文无忧网 www.paper51.com

       CStringerr;

http://www.paper51.com

                 err.Format("ADO Error:%s",(char*)e.Description()); http://www.paper51.com

                 AfxMessageBox(err); 内容来自论文无忧网 www.paper51.com

                 return false;

paper51.com

              } 内容来自www.paper51.com

} 内容来自www.paper51.com

最后添加关闭数据库连接的函数。选择ADD Virtual Function添加一个虚函数,重载系统提供的ExitInstance()函数,填写代码如下:

内容来自论文无忧网 www.paper51.com

int CMaterial_MISApp::ExitInstance()

内容来自论文无忧网 www.paper51.com

{

paper51.com

              // TODO:Add your specialized code here and/or call the base class

http://www.paper51.com

             

内容来自www.paper51.com

              //释放ADO连接对象

http://www.paper51.com

              if(adStateOpen == ADOConn->State )     ADOConn->Close(); http://www.paper51.com

              ADOConn.Release(); copyright paper51.com

           paper51.com

              // 释放ADO记录集 内容来自论文无忧网 www.paper51.com

              if(adStateOpen==m_pADOSet->State)     m_pADOSet->Close();

内容来自论文无忧网 www.paper51.com

              m_pADOSet.Release(); 内容来自论文无忧网 www.paper51.com

              copyright paper51.com

              returnCWinApp::ExitInstance(); http://www.paper51.com

} 内容来自www.paper51.com

通过以上的编写,完成了对数据库的基本操作,为下面的工作提供了最基本的功能。 内容来自www.paper51.com

------分隔线----------------------------
联系方式