我用odbc连接sql server,代码如下:
_bstr_t str="DSN=AA;UID=sa;PWD=111111";
conn->open(str,"",",-1);
为什么总是异常,报无效指针??????????
我进入查询分析器的时候用   sa,111111是可以连接的呀,这是怎么回事,请问系统dsn和用户dsn有什么区别吗??????????

解决方案 »

  1.   

    报无效指针,可能你的conn指针真的是无效,如果你调试一下,在这一句
    conn->open(str,"",",-1);
    断住,看conn是否为有效值。
    主要看一下这两句:
    hr = m_pConn.CreateInstance("ADODB.Connection");///创建Connection对象
    if(SUCCEEDED(hr))
    {
    hr = m_pConn->Open("DSN=AA;;Trusted_Connection=no;","sa","111111",adModeUnknown);///连接数据库
    }
    关于DSN,系统的表示不管用哪个用户登录,都存在,可以用;用户的则只有以创建它的用户(或超级用户)登录时,它才存在并可用。如果能够看到DSN,则与其是系统的还是用户的就没有关系了。