C++程序连接不上SQL2008数据库!请大侠,高手帮看看!该如何处理

C++程序连接不上SQL2008数据库!请大侠,高手帮看看!
用SQL2008建立student库,其中有个stu_info表,表中有些数据,系统用的是administrator登录的XP professional,建立student数据库时是用自建的账号登录的。还有此程序是从网上下载的,我是个数据库新手,程序编译没问题,但是程序运行时,连接不上数据库,不知道是什么原因!
部分代码:
C/C++ code

int   main() 
{ 
 cout   <<  "enter main\n "; 
        STU   student; 
        ::CoInitialize(NULL);   //   初始化OLE/COM库环境   ,为访问ADO接口做准备 
        
        _RecordsetPtr   m_pRecordset( "ADODB.Recordset"); 
        _ConnectionPtr   m_pConnection( "ADODB.Connection"); 
        cout   <<  "begin select\n "; 
        _bstr_t   bstrSQL( "select   *   from   stu_info ");   //查询语句 
        char   *   query_cmd   =   "DELETE   FROM   stu_info   WHERE   sname   =   '本拉登' "; 
 cout   <<  "enter try\n "; 
 try 
 { 
    //   创建Connection对象 
    m_pConnection.CreateInstance( "ADODB.Connection "); 
    //   设置连接字符串,必须是BSTR型或者_bstr_t类型 
    _bstr_t   strConnect=   "Provider=SQLOLEDB; Server=(local); Database=student; uid=zhouxicai; pwd=123456; "; 
    //若数据库在网络上则Server为形如(192.168.1.5,3340) 用户sa和密码123只是针对我的库 
 cout   <<  "正在打开学生库\n ";  //显示本句后,程序停顿。。后面的语句均没显示,过一会程序自动退出
    m_pConnection->Open(strConnect, " ", " ",adModeUnknown); 
 cout   <<  "打开学生库结束\n "; 
    if(m_pConnection==NULL) cerr<<"Lind   data   ERROR!\n ";
 cout   <<  "正在创建记录集对象\n ";      
    //   创建记录集对象 
    m_pRecordset.CreateInstance(__uuidof(Recordset)); 
 cout   <<  "创建记录集对象结束\n "; 
  ...
  ...


程序自动退出后的输出信息:
C/C++ code

“SQLdatebase.exe”: 已加载“C:\Program Files\Common Files\System\Ole DB\sqloledb.rll”,未使用调试信息生成二进制文件。
SQLdatebase.exe 中的 0x7c812afb (kernel32.dll) 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012f8ec 处的 _com_error。
“SQLdatebase.exe”: 已加载“D:\Program Files\Youdao\Dict4\WordStrokeHelper32.dll”,Cannot find or open the PDB file
线程 'Win32 线程' (0xe34) 已退出,返回值为 0 (0x0)。
线程 'Win32 线程' (0x820) 已退出,返回值为 0 (0x0)。
线程 'Win32 线程' (0x9ac) 已退出,返回值为 0 (0x0)。
程序“[1492] SQLdatebase.exe: 本机”已退出,返回值为 0 (0x0)。


运行时显示的错误
ERROR:[DBNETLIB][connectionOpen(connect()).]SQL Server不存在或拒绝访问。
原始代码出处:
http://www.yesky.com/277/1893277.shtml
补充:天都黑了,还没人回答~~

------解决方案--------------------
从提示看,应该是数据库连接错误.
检查一下你的那个连接字符串是否正确,且数据库允许SQL SERVER 用户登录.
------解决方案--------------------
SQL2008连接字符串应该这样。
C/C++ code

Provider=SQLNCLI10;Server=192.168.0.10;Database=myDataBase;Uid=sa; Pwd=123456;

------解决方案--------------------
m_pRecordset->Open可能就没有执行成功!你改成这样:
C/C++ code

HRESULT hr=m_pRecordset->Open(bstrSQL , (IDispatch *)m_pConnection, adOpenStatic, adLockOptimistic , adCmdText ); 

调试执行,看看hr的值是否是0!
如果不为0,看看bstrSQL 值是什么,拷贝到数据库查询分析器执行一下,看看有什么结果。。。