ADO连接字符串

博客转移:http://vivianke.blog.163.com/blog/static/29715271200781121956674/

 

第一种:使用数据源DSN

BOOL CMaterial_MISApp::InitInstance()
{
    AfxEnableControlContainer();

    // Standard initialization
    // If you are not using these features and wish to reduce the size
    //  of your final executable, you should remove from the following
    //  the specific initialization routines you do not need.

#ifdef _AFXDLL
    Enable3dControls();            // Call this when using MFC in a shared DLL
#else
    Enable3dControlsStatic();    // Call this when linking to MFC statically
#endif

    // Change the registry key under which our settings are stored.
    // TODO: You should modify this string to be something appropriate
    // such as the name of your company or organization.
    SetRegistryKey(_T("Local AppWizard-Generated Applications"));

    LoadStdProfileSettings();  // Load standard INI file options (including MRU)

    // Register the application's document templates.  Document templates
    //  serve as the connection between documents, frame windows and views.

    m_iLoginCount=0;
    if (FAILED(::CoInitialize(NULL))) {
        AfxMessageBox("ADO Init failed");
        return false;
    }

    try{
        ADOConn.CreateInstance(__uuidof(Connection));

        ADOConn->Open("DSN=Material_MIS;Provider=MSDASQL","DBAdmin","VIVIANKE",adConnectUnspecified);    //使用连接字符串,连接数据库    
    }
    catch (_com_error e) {
        CString strErr;
        strErr.Format("%s",(char*)e.Description());
        AfxMessageBox(strErr);
    }
    catch (...) {
        AfxMessageBox("Unknown Error...!");
    }

    m_pADOSet.CreateInstance(__uuidof(Recordset));

    //弹出登录窗口
    CLoginDlg dlg;
    if (dlg.DoModal()!=IDOK) return false;
    m_strCurUser=dlg.m_strName;
    
    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
        IDR_MAINFRAME,
        RUNTIME_CLASS(CMaterial_MISDoc),
        RUNTIME_CLASS(CMainFrame),       // main SDI frame window
        RUNTIME_CLASS(CMaterial_MISView));
    AddDocTemplate(pDocTemplate);

    // Parse command line for standard shell commands, DDE, file open
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);

    // Dispatch commands specified on the command line
    if (!ProcessShellCommand(cmdInfo))
        return FALSE;

    // The one and only window has been initialized, so show and update it.
    m_pMainWnd->ShowWindow(SW_MAXIMIZE);
    m_pMainWnd->UpdateWindow();
    m_pMainWnd->SetWindowText("物资管理系统");

    return TRUE;
}

第二种:不使用数据源

BOOL CMyApp::InitInstance()
{
    // Initialize OLE libraries
    if (!AfxOleInit())
    {
        AfxMessageBox(IDP_OLE_INIT_FAILED);
        return FALSE;
    }

    AfxEnableControlContainer();

    // Standard initialization
    // If you are not using these features and wish to reduce the size
    //  of your final executable, you should remove from the following
    //  the specific initialization routines you do not need.

#ifdef _AFXDLL
    Enable3dControls();            // Call this when using MFC in a shared DLL
#else
    Enable3dControlsStatic();    // Call this when linking to MFC statically
#endif

    // Parse the command line to see if launched as OLE server
    if (RunEmbedded() || RunAutomated())
    {
        // Register all OLE server (factories) as running.  This enables the
        //  OLE libraries to create objects from other applications.
        COleTemplateServer::RegisterAll();
    }
    else
    {
        // When a server application is launched stand-alone, it is a good idea
        //  to update the system registry in case it has been damaged.
        COleObjectFactory::UpdateRegistryAll();
    }
    
    //contact to database
    try
    {
        m_DBCnt.CreateInstance(__uuidof(Connection));
        m_DBCnt->ConnectionString=
            "driver={SQL Server};server=vivianke;"        //使用OLEDB链接SQL数据库
            "UID=DBAdmin;PWD=VIVIANKE;"
            "database=RMS";
        m_DBCnt->Open("","","",-1);
    }
    catch (_com_error e) {
        CString err;
        err.Format("%s",(char*)e.Description());
        AfxMessageBox(err);
    }
    m_pADOSet.CreateInstance(__uuidof(Recordset));

    CMyDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with Cancel
    }

    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值