ADO连接SQL server无效指针

ADO连接SQL server2008 使用_CommandPtr pCommand的对象时出现无效指针,代码:
void CMy123Dlg::OnCommand()
{
try
{
_ConnectionPtr pConnection=NULL;

    pConnection.CreateInstance(_uuidof(Connection));


    pConnection->Mode=adModeUnknown;
    pConnection->ConnectionTimeout=5;

    pConnection->ConnectionString=_T("Data Source=127.0.0.1;Provider=SQLOLEDB.1;Initial Catalog=自行车"); 
    HRESULT hr=  pConnection->Open(_T(""), _T("zxf"),_T("1234"), adModeUnknown);
    if(FAILED(hr))
    {  
        pConnection->Close();
        MessageBox("连接失败了");
        return ;
    }
    //CString ID;
    //GetDlgItemText(IDC_ID,ID);
    _CommandPtr pCommand=NULL;
    pCommand.CreateInstance(_uuidof(pCommand));
    pCommand->ActiveConnection=pConnection;
    pCommand->CommandText=_T("insert into 类型([ID]) values(?)");
    pConnection->CommandTimeout=5;
    _variant_t vRecordsAffected;

_ParameterPtr pParam1=pCommand->CreateParameter(_bstr_t("ID"),adBSTR,adParamInput,m_ID.GetLength(),_variant_t(m_ID));
pCommand->Parameters->Append(pParam1);
pCommand->Execute(&vRecordsAffected,NULL,adCmdText);
if(vRecordsAffected.intVal==1)
{
  MessageBox("添加成功了");
}
if(pConnection->State)
{
   pConnection->Close();
   pConnection=NULL;
}
}
catch(_com_error &e)
{
    AfxMessageBox(e.ErrorMessage());
}

}

connection在哪创建的,只看到貌似初始化的代码,但没有赋值代码