在C#中利用adodb调用oracle中定义的函数,如何实现? 例如一个很简单的函数: FUNCTION testf (x IN VARCHAR2) RETURN VARCHAR2 IS BEGIN RETURN x || '-server'; END; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用存储过程,我利用下面的代码能实现:ADODB.Command adoCmd; GeneralCommon.M_CN1.CursorLocation = ADODB.CursorLocationEnum.adUseServer; adoCmd = new ADODB.Command(); Conn.BeginTrans(); adoCmd.ActiveConnection = GeneralCommon.M_CN1; adoCmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc; adoCmd.CommandText = Proce_Name; //Ceate Input Parameter for (iCount = 0; iCount <= Para_Info.Length - 1; iCount++) { adoCmd.Parameters.Append(adoCmd.CreateParameter("", ADODB.DataTypeEnum.adVariant, ADODB.ParameterDirectionEnum.adParamInput, 0, null)); } //Input Parameters Value Setting for (iCount = 0; iCount <= Para_Info.Length - 1; iCount++) { adoCmd.Parameters[iCount].Value = Para_Info[iCount]; } object value = null; adoCmd.Parameters.Append(adoCmd.CreateParameter("arg_e_code", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamOutput, 1, value)); adoCmd.Parameters.Append(adoCmd.CreateParameter("arg_e_msg", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 256, value)); adoCmd.Execute(out value); //Process Error Check if (adoCmd.Parameters["arg_e_code"].Value.ToString() != "0") { ret_Result_ErrCode =int.Parse( adoCmd.Parameters["arg_e_code"].Value.ToString()); ret_Result_ErrMsg = (string)(adoCmd.Parameters["arg_e_msg"].Value); Conn.RollbackTrans();//1123 sErrMessg = (string)("Error Code : " + ret_Result_ErrCode + "\r\n" + "Error Mesg : " + ret_Result_ErrMsg); Gp_MsgBoxDisplay(sErrMessg, "", ""); returnValue = false; } else { Conn.CommitTrans(); returnValue = true; } adoCmd = null; Cursor.Current = Cursors.Default; if (GeneralCommon.M_CN1.State != 0) { GeneralCommon.M_CN1.Close(); } } catch (Exception ex) { adoCmd = null; Conn.RollbackTrans(); } return returnValue; select testf('x') from dual 技术问题! 用socket获得远程主机的htm页面,存到本地后,很多字符不能显示 问个弱弱的问题``关于ArrayList和List的 JS脚本小问题,, 大家有用fluent NHibernate的吗?请教一个数据库插入异常的问题。 在visual c#中使用使用c语言编写的库? dotnetfx.exe怎么安装呀? c#中的属性可不可以加参数 谁给我说一下VS.NET2003是什么样子的啊.好象成都没有买的啊! 关于b\s结构,小弟还是没有搞清楚 Win8的管理员启动 c#访问access时like 查询的内存溢出
ADODB.Command adoCmd;
GeneralCommon.M_CN1.CursorLocation = ADODB.CursorLocationEnum.adUseServer;
adoCmd = new ADODB.Command(); Conn.BeginTrans(); adoCmd.ActiveConnection = GeneralCommon.M_CN1;
adoCmd.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc;
adoCmd.CommandText = Proce_Name; //Ceate Input Parameter
for (iCount = 0; iCount <= Para_Info.Length - 1; iCount++)
{
adoCmd.Parameters.Append(adoCmd.CreateParameter("", ADODB.DataTypeEnum.adVariant, ADODB.ParameterDirectionEnum.adParamInput, 0, null));
} //Input Parameters Value Setting
for (iCount = 0; iCount <= Para_Info.Length - 1; iCount++)
{
adoCmd.Parameters[iCount].Value = Para_Info[iCount];
}
object value = null;
adoCmd.Parameters.Append(adoCmd.CreateParameter("arg_e_code", ADODB.DataTypeEnum.adInteger, ADODB.ParameterDirectionEnum.adParamOutput, 1, value));
adoCmd.Parameters.Append(adoCmd.CreateParameter("arg_e_msg", ADODB.DataTypeEnum.adVarChar, ADODB.ParameterDirectionEnum.adParamOutput, 256, value));
adoCmd.Execute(out value); //Process Error Check
if (adoCmd.Parameters["arg_e_code"].Value.ToString() != "0")
{
ret_Result_ErrCode =int.Parse( adoCmd.Parameters["arg_e_code"].Value.ToString());
ret_Result_ErrMsg = (string)(adoCmd.Parameters["arg_e_msg"].Value);
Conn.RollbackTrans();//1123
sErrMessg = (string)("Error Code : " + ret_Result_ErrCode + "\r\n" + "Error Mesg : " + ret_Result_ErrMsg);
Gp_MsgBoxDisplay(sErrMessg, "", "");
returnValue = false;
}
else
{
Conn.CommitTrans();
returnValue = true;
} adoCmd = null;
Cursor.Current = Cursors.Default; if (GeneralCommon.M_CN1.State != 0)
{
GeneralCommon.M_CN1.Close();
}
}
catch (Exception ex)
{
adoCmd = null;
Conn.RollbackTrans();
} return returnValue;