ADO访问sql server2005数据库 执行到此句时出错,该如何处理

ADO访问sql server2005数据库 执行到此句时出错
我是自动附加数据库的,
m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
不知道是怎么回事,
前面的一些代码:
char buf[256];//
::GetCurrentDirectory(256,buf);//获取根目录路径
strcat(buf,"\\student_Data.mdf");//
CString str,strlog,strmdf;
str="student";
strmdf=buf;
strlog=buf;
strlog.Replace("Data.mdf","Log.ldf");
  CAdoxinView::OnAdoInitConn("master");//连接
CString sql;
sql.Format("EXEC sp_attach_db @dbname=N'%s',@filename1=N'%s',@filename2=N'%s'",str,strmdf,strlog);
  try
{
m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
CAdoxinView::ExitAdoConn();

------解决方案--------------------
m_pConnection连接打开没有!?看这错误应该没有打开的样子。
------解决方案--------------------
自动附加数据库可以用批处理完成,但是我只在SQL server 2000里面成功了,代码是网上找的

@echo off
echo 正在设置系统数据库,请稍候...
@odbcconf.exe /a {CONFIGSYSDSN "SQL Server" "DSN=CSGL|Description=汽车销售管理系统|SERVER=(local)|Database=CSGL"}
REG Delete "HKLM\SOFTWARE\ODBC\ODBC.INI\CSGL" /v "LastUser" /f
REG ADD "HKLM\SOFTWARE\ODBC\ODBC.INI\CSGL" /v "LastUser" /t "REG_SZ" /d "sa" /f
echo 系统数据库设置完成!
echo.