
vc ado 无法调用带参存储过程(SQL server 2008).
用vcado访问SQLServer2008中的存储过程:1、不含参数的存储过程能够正常调用。2、带参数的存储过程不能正常调用。我在vs2010“服务器资源管理器”里面或者...
用vc ado 访问 SQL Server 2008 中的存储过程:
1、不含参数的存储过程能够正常调用。
2、带参数的存储过程不能正常调用。
我在vs2010 “服务器资源管理器”里面或者在 数据库自带的management studio 中都可以执行这些存储过程,不知道为什么通过编程的方式不行。之前我连接过mysql的存储过程,但是插入的数据是乱码(我数据库5.5.20,安装的编码为默认编码utf8),按照网上别人说的编码改成gbk,可是程序中执行proc_insert_user时会出错。新手求教啊! 展开
1、不含参数的存储过程能够正常调用。
2、带参数的存储过程不能正常调用。
我在vs2010 “服务器资源管理器”里面或者在 数据库自带的management studio 中都可以执行这些存储过程,不知道为什么通过编程的方式不行。之前我连接过mysql的存储过程,但是插入的数据是乱码(我数据库5.5.20,安装的编码为默认编码utf8),按照网上别人说的编码改成gbk,可是程序中执行proc_insert_user时会出错。新手求教啊! 展开
2个回答
展开全部
只写过一次存储过程 你看下 = =
执行Oracle的存储过程。 ADO有个蛋疼的问题 无法接收存储过程的游标 哎。
_CommandPtr m_comm;
_ConnectionPtr m_conn;
_ParameterPtr m_param;
_ParameterPtr m_param1;
_ParameterPtr m_param2;
CString starttime;
CString stoptime;
CString savestr;
_bstr_t sqlcon = "Provider=OraOLEDB.Oracle.1;Data Source=orcl1;User ID=system;Password=admin;Unicode=True";
m_comm.CreateInstance(__uuidof(Command));
m_conn.CreateInstance(__uuidof(Connection));
m_param.CreateInstance(__uuidof(Parameter));
m_param1.CreateInstance(__uuidof(Parameter));
m_param2.CreateInstance(__uuidof(Parameter));
m_conn->Open(sqlcon,"","",0);
GetDlgItemText(IDC_START,starttime);
GetDlgItemText(IDC_STOP,stoptime);
m_comm->ActiveConnection = m_conn;
m_comm->CommandText=_bstr_t("cunhu");
m_param = m_comm->CreateParameter("x",adDBDate,adParamInput,0,(_variant_t)starttime); //输出参数
m_comm->Parameters->Append(m_param);
m_param1 = m_comm->CreateParameter("y",adDBDate,adParamInput,0,(_variant_t)stoptime);
m_comm->Parameters->Append(m_param1);
m_param2 = m_comm->CreateParameter("save",adChar,adParamOutput,0,(_variant_t)savestr); //输入参数
m_comm->CommandType=adCmdStoredProc;
m_comm->Execute(NULL,NULL,adCmdStoredProc);
_variant_t save=m_comm->Parameters->GetItem("save")->GetValue();
m_comm.Release();
m_conn->Close();
执行Oracle的存储过程。 ADO有个蛋疼的问题 无法接收存储过程的游标 哎。
_CommandPtr m_comm;
_ConnectionPtr m_conn;
_ParameterPtr m_param;
_ParameterPtr m_param1;
_ParameterPtr m_param2;
CString starttime;
CString stoptime;
CString savestr;
_bstr_t sqlcon = "Provider=OraOLEDB.Oracle.1;Data Source=orcl1;User ID=system;Password=admin;Unicode=True";
m_comm.CreateInstance(__uuidof(Command));
m_conn.CreateInstance(__uuidof(Connection));
m_param.CreateInstance(__uuidof(Parameter));
m_param1.CreateInstance(__uuidof(Parameter));
m_param2.CreateInstance(__uuidof(Parameter));
m_conn->Open(sqlcon,"","",0);
GetDlgItemText(IDC_START,starttime);
GetDlgItemText(IDC_STOP,stoptime);
m_comm->ActiveConnection = m_conn;
m_comm->CommandText=_bstr_t("cunhu");
m_param = m_comm->CreateParameter("x",adDBDate,adParamInput,0,(_variant_t)starttime); //输出参数
m_comm->Parameters->Append(m_param);
m_param1 = m_comm->CreateParameter("y",adDBDate,adParamInput,0,(_variant_t)stoptime);
m_comm->Parameters->Append(m_param1);
m_param2 = m_comm->CreateParameter("save",adChar,adParamOutput,0,(_variant_t)savestr); //输入参数
m_comm->CommandType=adCmdStoredProc;
m_comm->Execute(NULL,NULL,adCmdStoredProc);
_variant_t save=m_comm->Parameters->GetItem("save")->GetValue();
m_comm.Release();
m_conn->Close();
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询