ADO连接字符串

原创 2011年10月31日 20:40:54

博客转移: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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Ado的连接字符串大全

  • 2008-09-19 00:22
  • 272KB
  • 下载

ADO.NET入门教程(三) 连接字符串,你小觑了吗?

出处:http://www.cnblogs.com/liuhaorain/archive/2012/02/12/2347914.html 摘要       ADO.NET强...

vc6.0 使用Ado 连接MS-SqlServer2000 连接字符串

ADO连接字符串有两种,一种是使用DSN方法,另外一种是不适用DSN方法。 在网上查找了好久找到了一种简便的得到MS-SqlServer2000连接字符串的方法(不使用DSN的方法) 1.新建一个...

ado连接字符串大全

  • 2007-10-23 00:47
  • 31KB
  • 下载

黑马程序员_学习日记47_615数据库开发及ADO.Net(连接字符串、SqlDataReader对象、连接池)

重难点:reader.NextResult()、反射揭示连接池原理、连接字符串写法   一、日期函数: 1、getdate() 获得当前日期 2、Dateadd(datepart,numbe...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)