c++通过存储过程访问数据库库(ado)
2008-10-21 17:32
351 查看
_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
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
相关文章推荐
- 存储过程返回的多结果集数据,ado 访问调用
- [转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器
- 通过存储过程访问SQL数据
- c++通过ado获取存储过程的return返回值
- 调用存储过程取到数据通过NPOI存到Excel中
- 通过存储过程来删除已造出大量的数据
- 通过存储过程来进行数据绑定
- 通过Shell访问DB2中的存储过程
- 使用系统表根据存储过程名字生成ADO.NET数据库访问代码
- 根据存储过程名字生成ADO.NET数据库访问代码
- 通过FEDERATED存储引擎跨实例访问数据
- 通过存储过程提单时进行数据校验,优先于预算控制
- 使用 ADO.NET 访问 Oracle 9i 存储过程
- 通过代码备份存储过程,package body 和表数据 并还原
- Java调用oracle存储过程通过游标返回临时表数据
- C++通过ADO访问数据库的连接字符串
- 通过Shell访问Sybase中的存储过程
- C++中如何通过无成员变量的空类存储数据
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。
- 通过调用过程把图片文存储到数据