c++通过存储过程访问数据库库(ado)

本文介绍了一种使用ADO连接SQL Server数据库并执行存储过程的方法。具体演示了如何设置连接字符串、创建连接对象、定义命令对象及参数,并最终执行存储过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 _ConnectionPtr m_pConnection ;
 CString m_dbserver= "127.0.0.1";
 
 CString  m_initDb = "PhoneManage";
 CString  m_username = "sa";
 CString  m_passwd = "";
 CString strConnection = "Provider=SQLOLEDB.1;Data Source=" + m_dbserver +
  ";Initial Catalog=" + m_initDb  +
  ";User ID=" + m_username + "; PWD=" + m_passwd;
 //////////////////////////////////////////////////////////////////////////
 //连接SQL Server 数据库
 //////////////////////////////////////////////////////////////////////////
 try
 {
  HRESULT hr;  
  hr = m_pConnection.CreateInstance("ADODB.Connection");
  
  if(SUCCEEDED(hr))
  {
  
   hr = m_pConnection->Open((_bstr_t)strConnection,"","",-1);
   
    _CommandPtr    m_pCommand;
   m_pCommand.CreateInstance("ADODB.Command");
         m_pCommand->ActiveConnection = ConnectPtr;
         m_pCommand->CommandType = adCmdStoredProc;
         m_pCommand->CommandText=_bstr_t("p_insert_user");
          _ParameterPtr ptr1,ptr2,ptr3,ptr4,ptr5;
         ptr1=m_pCommand->CreateParameter("p_UserName",adVarChar,adParamInput,12,_variant_t(m_strName));
         m_pCommand->Parameters->Append(ptr1);
            ptr2=m_pCommand->CreateParameter("p_PassWord",adVarChar,adParamInput,6,_variant_t(m_strPSW));
         m_pCommand->Parameters->Append(ptr2);
         ptr3=m_pCommand->CreateParameter("p_UserCode",adVarChar,adParamInput,10,_variant_t(m_strCode));
         m_pCommand->Parameters->Append(ptr3);
         ptr4=m_pCommand->CreateParameter("p_UserNote",adVarChar,adParamInput,10,_variant_t(m_strNote));
         m_pCommand->Parameters->Append(ptr4);
         ptr5= m_pCommand->CreateParameter("p_Admin",adVarChar,adParamInput,40,_variant_t(strManager));
         m_pCommand->Parameters->Append(ptr5);
       m_pCommand->Execute(NULL,NULL,adCmdStoredProc);
  }
 }
 catch(_com_error *e)
 {
  AfxMessageBox(e->ErrorMessage());
  AfxMessageBox("数据库连接未成功!");
 }

 

 

存储过程简单为:

CREATE PROCEDURE  p_insert_user
   @p_UserName        char(12),
   @p_PassWord        char(6),
   @p_UserCode        char(10),
   @p_UserNote         char(10),
   @p_Admin               char(40)

 AS
begin
         insert into UserTable(UserName,PassWord,UserCode,UserNote,Admin)
                         values(@p_UserName,@p_PassWord,@p_UserCode,@p_UserNote,@p_Admin)
end
GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值