#include <afx.h>
#import "C:\Program Files\common files\system\ado\msado15.dll" \
no_namespace rename("EOF","adoEOF")
int main()
{
CoInitialize(NULL);
_ConnectionPtr pConnection; pConnection.CreateInstance("ADODB.Connection");
    bstr_t strConnect = "Provider=SQLOLEDB; Server=192.168.1.1;\
Database=MyDB; uid=sa; pwd=";    try
{
pConnection->Open(strConnect, "", "", adModeUnknown);
}
catch(_com_error e)
{
::CoUninitialize();
return 1;
}
catch(...)
{
::CoUninitialize();
return 1;
} if (pConnection->State) {
pConnection->Close();
}
getchar();
    return 0;
}
能够连接成功,为什么会出现内存泄露的情况呢?
其提示如下
First-chance exception in DBConnect.exe (KERNEL32.DLL): 0x000006BA: (no name)

解决方案 »

  1.   

    当执行 pConnection->Open 时就是产生这样的信息
      

  2.   

    BOOL CDlgDBConnect::ConnectSQLServer()
    {
    if (m_strService.IsEmpty())
    {
    ::MessageBox(NULL,"·&thorn;&Icirc;&ntilde;&Atilde;&ucirc;&sup2;&raquo;&Auml;&Uuml;&Icirc;&ordf;&iquest;&Otilde;","&Igrave;á&Ecirc;&frac34;",MB_OK);
    return FALSE;
    }
    if (m_strDatabase.IsEmpty())
    {
    ::MessageBox(NULL,"&Ecirc;&yacute;&frac34;&Yacute;&iquest;&acirc;&sup2;&raquo;&Auml;&Uuml;&Icirc;&ordf;&iquest;&Otilde;","&Igrave;á&Ecirc;&frac34;",MB_OK);
    return FALSE;
    } theApp.m_pConnection.CreateInstance(__uuidof(Connection)); 
    try                 
    {
    theApp.m_strDatabase=m_strDatabase; CString strConn;
    strConn="Provider=SQLOLEDB.1;Password=";
    strConn+=m_strPassword;
    strConn+=";Persist Security Info=True;User ID=";
    strConn+=m_strUsername;
    strConn+=";Initial Catalog=";
    strConn+=m_strDatabase;
    strConn+=";Data Source=";
    strConn+=m_strService;
    theApp.m_pConnection->Open((_bstr_t)strConn,
       "",
       "",
       adModeUnknown);
    }
    catch(_com_error e)
    {
    ::MessageBox(NULL,e.Description(),"&Igrave;á&Ecirc;&frac34;",MB_OK);
    return FALSE;
    }

    ::MessageBox(NULL,"&Ecirc;&yacute;&frac34;&Yacute;&iquest;&acirc;&Aacute;&not;&frac12;&Oacute;&sup3;&Eacute;&sup1;&brvbar;&pound;&iexcl;","&Igrave;á&Ecirc;&frac34;",MB_OK);
    return TRUE;}
      

  3.   

    // ...
    bstr_t strConnect = "Provider=SQLOLEDB.1;Data Source=192.168.1.1;Initial Catalog=MyDB;"; 
    try
    {
    pConnection->Open(strConnect, "sa", "", adModeUnknown);
    }
    // ...
      

  4.   

    你的代码,我在vc7.1+winxp sp2+sql server 2000 sp4 + mdac2.8的环境下测试,没有出现异常请提供你的环境配置,以便解决
      

  5.   

    先 close 再 ::CoUninitialize();
      

  6.   

    // ...
    try
    {
     // . ..
    }
    catch(_com_error e)
    {
    // error ...
    return 1;
    } if (pConnection->State) {
    pConnection->Close();
    }
    ::CoUninitialize();
    getchar();
        return 0;
    }
      

  7.   

    http://community.csdn.net/Expert/topic/5275/5275251.xml?temp=.1500818
    帮我看看哈。
      

  8.   

    vc6 + win2k+sql server 2000 sp4
      

  9.   

    各位大虾 我的程序能够连接数据库成功,但是在OPEN的时候会出现如下提示:
    First-chance exception in DBConnect.exe (KERNEL32.DLL): 0x000006BA: (no name)
    我想知道这其中的原因
      

  10.   

    vc6 + XP sp2+sql server 2000 sp4测试
    设置我的数据库登录信息
    没有出现该异常
    First-chance exception in DBConnect.exe (KERNEL32.DLL): 0x000006BA: (no name)当我修改数据库链接字符串为错误的时候,出现以下异常
    Loaded 'C:\WINDOWS\system32\dbnmpntw.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\Ole DB\sqloledb.rll', no matching symbolic information found.
    First-chance exception in test999.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.供你参考,有可能是没有真正的open成功,你的数据库是本机数据库还是远端数据库,登录信息要填写正确,要么有可能你的远端数据库设置仅为windows 认证登录,或者是你的远端数据库IP,需要在运行程序的客户机上配置一下客户端网络实用工具
      

  11.   

    首先感谢各位给予的帮助,但是我并没有得到我想要的东西,可能更小弟的愚笨有关,在网上搜索了一下,只看到以下相关信息。在VC中调试程序时,Output窗口有时会出现“First-chance exception in xxx.exe...”这样的信息。一般来说,这是由于程序中发生了异常,被VC捕获而产生的输出。在调试器中运行程序时,如果程序产生异常,调试器会首先获得通知(即First-chance exception),而后此异常由产生它的程序负责捕获。如果程序没有捕获此异常,那么调试器会再次被通知(即Second-chance exception,Last-chance exception),并结束程序。通常见到的“First-chance exception”一般是“0xC0000005: Access Violation”,“0xC00000FD: Stack Overflow”等,这些都说明程序中有缺陷,需要修正。但是也有一些属于正常的情况,例如“First-chance exception in xxx.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception”。Windows 操作系统中广泛使用了结构化异常(SEH)来处理特殊情况,许多和底层打交道的API都靠SEH来处理可能发生的意外。并且,这些API中都有捕获SEH的代码,产生的异常不会对程序造成影响。但是由于上面提到的“First-chance exception,Second-chance exception”机制,VC仍然会有输出,但是我们完全可以忽略。如果你实在不喜欢这些输出信息,那你就必须禁用对特定异常的“First-chance exception”捕获。
      

  12.   

    有个做VC的牛人说是象我这种异常是:
    no name的异常!是内核的一个 no name 异常! 
    这个异常是正常的撤销就不用了,不是所有问题都能一时间找到答案,通过这个问题我还是学到很多东西,很感谢大家,改天揭贴