楼上的兄弟,我有个问题: 1、你用的是存储过程,是没有返回值的,ORACLE中的函数必须有返回值; 2、你在VC中的调用是调用存储过程的方法,这个方法我已经在VC中实现,但是同样的方法用在函数上不能成功;CREATE OR REPLACE FUNCTION TEST ( v_MOBILE in VARCHAR2, v_ice out number ) return boolean As Begin if length(v_MOBILE)=11 then v_ice:=1; return true; else v_ice:=0; return false; end if; EXCEPTION WHEN OTHERS THEN v_ice:=0; return false; END;上面的这个函数,在VC中调用,我怎么取到v_ice出参和返回的布尔类型的值???
1\..上面是执行的带返回值的存储过程了...有些区别 2\函数的话,按下面的方法把结果返回到记录集,再到记录集取结果:strSQL.Format(_T( "select test('%s') from dual"),参数); m_record = m_conn-> Execute(...);
ASselect * from YourTbName
where CCMS_CLASS_PART.K_PRJNO=@PrjNo
and K_PARTNO=@PartNo
and K_ASMPATH=@AsmPath GO在VC里
CString strQuery="GetOldPart '"+csPrjNo+"','"+csPartNo+"','"+csAsmPath+"'";
m_pCmd->ActiveConnection = mpdb;
m_pCmd->CommandText = _bstr_t(strQuery);
m_pCmd->CommandType = adCmdStoredProc;
m_pConnection->CursorLocation = adUseClient;
m_pRecordset = m_pCmd->Execute(NULL, NULL, adCmdText);
----------------------------------------------------------------ParameterPtr para[3];
_CommandPtr pCmd;
pCmd.CreateInstance("ADODB.Command");
para[0].CreateInstance("ADODB.Parameter");
para[1].CreateInstance("ADODB.Parameter");
para[2].CreateInstance("ADODB.Parameter");
pCmd->ActiveConnection=m_pConn;
pCmd->CommandText="存储过程名"
para[0]=pCmd->CreateParameter("", adBSTR,adParamInput, sizeof(char[50]),vVar); //字符串型输入参数
pCmd->Parameters->Append(para[0]);
para[1]=pCmd->CreateParameter("", adInteger,adParamInput, sizeof(int),olevariantVar); //整型输入参数
pCmd->Parameters->Append(para[1]);
para[2]=pCmd->CreateParameter("", adBSTR,adParamOutput, sizeof(char[50]),""); //字符串型输出参数
pCmd->Parameters->Append(para[2]);
pCmd->Execute( NULL, NULL, adCmdStoredProc);
1、你用的是存储过程,是没有返回值的,ORACLE中的函数必须有返回值;
2、你在VC中的调用是调用存储过程的方法,这个方法我已经在VC中实现,但是同样的方法用在函数上不能成功;CREATE OR REPLACE FUNCTION TEST (
v_MOBILE in VARCHAR2,
v_ice out number
)
return boolean
As
Begin
if length(v_MOBILE)=11 then
v_ice:=1;
return true;
else
v_ice:=0;
return false;
end if;
EXCEPTION
WHEN OTHERS THEN
v_ice:=0;
return false;
END;上面的这个函数,在VC中调用,我怎么取到v_ice出参和返回的布尔类型的值???
2\函数的话,按下面的方法把结果返回到记录集,再到记录集取结果:strSQL.Format(_T( "select test('%s') from dual"),参数);
m_record = m_conn-> Execute(...);