用ADO连接SQL数据库方法如下:
1.声明ADO数据库操作对象
public:
  _ConnectionPtr m_connection; //数据源连接对象 
  _RecordsetPtr  m_recordset; //反回记录集对象
  _CommandPrt    m_command; //数据源执行命令对象private:
  CString m_strSource; //数据源连接字符串
  BOOL m_fConnected; //数据源连接成功标志
2.创建数据库连接和记录集对象
  HRESULT hr;
  _bstr_t source("Driver"={SQL Server};Server=JACKIE; Uid=sa; Pwd=jackie1127; Database=membership");
  _bstr_t user("admin"); //在source 里已给出了Uid 和pwd,为什么
  _bstr_t pwd("");
  try{
     hr=m_connection.CreateInstance(_uuidof(Connection));
     if(SUCCEEDED(hr))
        hr=m_connection->Open(source,user,pwd,16);
     if(SUCCEEDED(hr))
        hr=m_recordset.CreateInstance(_uuidof(Recordset));
     if(SUCCEEDED(hr))
        m_fConnected=TRUE;
     else
        m_fConnected=FALSE;
     }
   catch(_com_error &e)
   {
      MessageBox(e.ErrorMessage());
      m_fConnected=FALSE;
   }
   if(!m_fConnected) MessageBox("ADO数据源初始化失败");
   else m_strSource=(const char*) source;
我的问题:
1.  _bstr_t source("Driver"={SQL Server};Server=JACKIE; Uid=sa; Pwd=jackie1127; Database=membership");
  这里是定义了一个source变量,同时给他附了初值,对吧
  那我想定义一个字符串变量m_name,同时附初值为"this is jacky"就可以用以下语句    CString m_name("this is jacky")  ,这样说对吗??
2.  在source 里已给出了Uid 和pwd,为什么还有下面两句
   _bstr_t user("admin");
   _bstr_t pwd("");
3.这个问题与第二个问题基本上是同一问题
hr=m_connection->Open(source,user,pwd,16);这一句中source有Uid和pwd,那这里的第二和第三个参数(user,pwd)是起什么作用的