bluelamb(bluelamb) 大虾,应该怎么调用呢?
解决方案 »
- 两个数据库的相同表数据查询,求大神解决
- oracle 安装客户端出现VTA-1000: 该浏览器无法通过该文件或URL来启动
- oracle10g版本是否不允许用数据字典模式管理表空间?
- C++连接Oracle,提示找不到某个库
- 那位高手帮忙解释一下Oracle的增量备份?
- 请问如何再一个存储过程中调用另一个存储过程,和如何用sql/plus调试存储过程呀,和用什么命令可以显示错误
- oracle 建立表空间
- 请问大家 Oracle 和 PL/SQL 之间是什么联系呢?
- 数据库表锁定的问题
- PL/SQL developer里怎么查看游标指向的结果集?
- 请高手给予看看,发觉问题,本人不胜感谢,在线等待.....
- 求解一个sql语句:)在线等.....
{
HRESULT hr = S_OK;
_RecordsetPtr pRstUserInfo = NULL;
_CommandPtr pcmdUserInfo = NULL;
_ParameterPtr pprmUserInfo = NULL;
_ConnectionPtr pDBConnection = NULL;
long paramSize = 16;
_bstr_t bstrUserID = "";
_bstr_t bstrPassword = ""; //参数
bstrUserID = strUserName.c_str();
try
{
TESTHR(pDBConnection.CreateInstance(__uuidof(Connection)));
hr = pDBConnection->Open((_bstr_t)connectPoolStr,"","",adConnectUnspecified);
//Open Command Object with one Parameter
TESTHR(pcmdUserInfo.CreateInstance(__uuidof(Command)));
pcmdUserInfo->CommandText = "ADE.PROC_ALLOC_ID";
pcmdUserInfo->CommandTimeout = 15;
pcmdUserInfo->CommandType = adCmdStoredProc;
pcmdUserInfo->PutPrepared(true);
pprmUserInfo = pcmdUserInfo->CreateParameter("username",adBSTR,adParamInput,paramSize,bstrUserID);
pprmUserInfo->Value = bstrUserID;
pcmdUserInfo->Parameters->Append(pprmUserInfo);
//Create Recordset by executing the command
TESTHR(pRstUserInfo.CreateInstance(__uuidof(Recordset)));
pRstUserInfo->CursorLocation = adUseClient;
pcmdUserInfo->ActiveConnection = pDBConnection;
pRstUserInfo = pcmdUserInfo->Execute(NULL,NULL,adCmdStoredProc);
SPQueryCommand.CreateInstance(_uuidof(Command));
SPQueryCommand->ActiveConnection = ((CQueryInfoApp *)AfxGetApp())->m_pConnection;
SPQueryCommand->CommandText = "tools_pk_spinfo_sch.tools_sp_spInfo";
_ParameterPtr IcpCodeParam,IcpNameParam,IcpShortNameParam,IcpServerIDParam,ServNameParam,SerAlaisParam,TableNameParam,RetParam;IcpCodeParam.CreateInstance("ADODB.Parameter");
IcpNameParam.CreateInstance("ADODB.Parameter");
IcpShortNameParam.CreateInstance("ADODB.Parameter");
IcpServerIDParam.CreateInstance("ADODB.Parameter");
ServNameParam.CreateInstance("ADODB.Parameter");
SerAlaisParam.CreateInstance("ADODB.Parameter");
TableNameParam.CreateInstance("ADODB.Parameter");
RetParam.CreateInstance("ADODB.Parameter");IcpCodeParam = SPQueryCommand->CreateParameter("v_icpcode",adVarChar,adParamInput,30,(_variant_t)strIcpCode);
SPQueryCommand->Parameters->Append(IcpCodeParam);IcpNameParam = SPQueryCommand->CreateParameter("v_icpname",adVarChar,adParamInput,30,(_variant_t)strSPName);
SPQueryCommand->Parameters->Append(IcpNameParam);IcpShortNameParam = SPQueryCommand->CreateParameter("v_icpshortname",adVarChar,adParamInput,30,(_variant_t)strShortName);
SPQueryCommand->Parameters->Append(IcpShortNameParam);IcpServerIDParam = SPQueryCommand->CreateParameter("v_icpservid",adVarChar,adParamInput,30,(_variant_t)strServerCode);
SPQueryCommand->Parameters->Append(IcpServerIDParam);ServNameParam = SPQueryCommand->CreateParameter("v_servname",adVarChar,adParamInput,30,(_variant_t)strServerName);
SPQueryCommand->Parameters->Append(ServNameParam);SerAlaisParam = SPQueryCommand->CreateParameter("v_servidalais",adVarChar,adParamInput,30,(_variant_t)strSerIDAlasNo);
SPQueryCommand->Parameters->Append(SerAlaisParam);TableNameParam = SPQueryCommand->CreateParameter("new_tab_name",adVarChar,adParamOutput,30,(_variant_t)m_strTempTableName);
SPQueryCommand->Parameters->Append(TableNameParam);RetParam = SPQueryCommand->CreateParameter("sql_err",adVarChar,adParamOutput,50);
SPQueryCommand->Parameters->Append(RetParam);
SPQueryCommand->Execute(NULL,NULL,adCmdStoredProc);
_ParameterPtr pprmByRoyalty = NULL;pCmdChange.CreateInstance(__uuidof(Command));
pCmdChange->CommandType = adCmdStoredProc;
pCmdChange->CommandText = "pkg_test.get";
//Define Integer/variant.
pprmByRoyalty.CreateInstance(__uuidof(Parameter));
VARIANT vtRoyalty;
vtRoyalty.vt = VT_I2;
vtRoyalty.iVal = 20;
pprmByRoyalty = pCmdChange->CreateParameter("param1",adInteger,adParamInput,sizeof(int),vtRoyalty);
pCmdChange->Parameters->Append(pprmByRoyalty);pprmByRoyalty->Value = vtRoyalty;
看看上面这段代码,对你是不是有帮助。
catch说是无效指针。但是,我编写的这个函数在我自己的机器上怎么运行都正常啊!!!感谢各位的帮助,如果各位给我提供的办法尝试成功,800分绝对少不了,再次谢谢各位!
command->ActiveConnection = gConnection;
这句话要在command->Append的前面。
如果实用就给800澳。咔咔。
不知道你怎么调用的。也许你应该把char *Inputstr拷贝出来后在
pParamRk->Value=xxx;//赋值吧