用友 二次开发 调用 存储过程_c#和java 调用数据库存储过程
今天不算是分享吧,算是个积累,毕竟小编记性不好话不多说,直接上例子了c#调用存储过程:public DELBPMEntityList SelectListByUserOidAndState(DELBPMEntityList PaticiOids,string ProcessInsState,bool isMonitor){//创建返回对象列表DELBPME...
·
今天不算是分享吧,算是个积累,毕竟小编记性不好
话不多说,直接上例子了
c#调用存储过程:
public DELBPMEntityList SelectListByUserOidAndState(DELBPMEntityList PaticiOids,string ProcessInsState,bool isMonitor) { //创建返回对象列表 DELBPMEntityList TheReturnObjectList = new DELBPMEntityList(); if(PaticiOids.Count < 1) return TheReturnObjectList; //创建数据库连接命令 mySelectCommand = new OracleCommand(); mySelectCommand.Connection = myConnection; mySelectCommand.CommandType = CommandType.StoredProcedure; mySelectCommand.CommandText = "PLM_BPM.GetProcessListByUserAndState"; //设置查询参数 mySelectCommand.Parameters.Add("UserId", OracleDbType.Raw).Value = ((Guid)PaticiOids[0]).ToByteArray(); mySelectCommand.Parameters.Add("ProcessInsState", OracleDbType.Varchar2).Value = ProcessInsState; mySelectCommand.Parameters.Add("isMonitor", OracleDbType.Char).Value = isMonitor ? 'Y' : 'N'; //设置返回参数 OracleParameter RetProcessList = new OracleParameter("RetProcessList", OracleDbType.RefCursor); RetProcessList.Direction = ParameterDirection.Output; mySelectCommand.Parameters.Add(RetProcessList); mySelectCommand.Prepare(); mySelectCommand.ExecuteNonQuery(); //从游标读取当前活动列表 OracleRefCursor processListRef = (OracleRefCursor)RetProcessList.Value; OracleDataReader drProcessList = processListRef.GetDataReader(); TheReturnObjectList = ReadProcessList(drProcessList); return TheReturnObjectList; } //组织回来的数据 private DELBPMEntityList ReadProcessList(OracleDataReader myDataReader) { //创建返回对象列表 DELBPMEntityList TheReturnObjectList = new DELBPMEntityList(); try { while (myDataReader.Read()) { DELProcessInsProperty TheReturnObject = new DELProcessInsProperty(); if (!myDataReader.IsDBNull(0)) TheReturnObject.ID = new Guid((byte[])myDataReader.GetValue(0)); if (!myDataReader.IsDBNull(1)) TheReturnObject.Name = myDataReader.GetString(1); if (!myDataReader.IsDBNull(2)) TheReturnObject.CLSID = (int)myDataReader.GetDecimal(2); if (!myDataReader.IsDBNull(3)) TheReturnObject.Description = myDataReader.GetString(3); if (!myDataReader.IsDBNull(4)) TheReturnObject.ProcessDefinitionID = new Guid((byte[])myDataReader.GetValue(4)); if (!myDataReader.IsDBNull(5)) TheReturnObject.Terminatio8nDate = myDataReader.GetDateTime(5); if (!myDataReader.IsDBNull(6)) TheReturnObject.IsObjectActived = myDataReader.GetString(6) == "Y" ? true : false; if (!myDataReader.IsDBNull(7)) TheReturnObject.OprType = myDataReader.GetString(7); if (!myDataReader.IsDBNull(8)) TheReturnObject.OptionalStr1 = myDataReader.GetString(8); TheReturnObjectList.Add(TheReturnObject); } } finally { if (myDataReader != null && !myDataReader.IsClosed) myDataReader.Close(); } return TheReturnObjectList; }
java调用存储过程:
public String getProcedureFB(String start,String end,String user) throws SQLException, ParseException { Connection conn = SqlHelper.getConnection(); CallableStatement cs=null; cs=conn.prepareCall("{call dt_xmgl_rwfb(?,?,?)}"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM Date date1=simpleDateFormat.parse(start); Date date2=simpleDateFormat.parse(end); cs.setTimestamp(1,new java.sql.Timestamp(date1.getTime())); cs.setTimestamp(2,new java.sql.Timestamp(date2.getTime())); cs.registerOutParameter(3, OracleTypes.CURSOR); cs.execute(); //接受返回游标结果 ResultSet rs = (ResultSet)cs.getObject(3); String ret=""; while(rs.next()){ String first=rs.getString(1); String second=rs.getString(2); ret+=first+":"+second+"-"; } if(ret.length()>1){ ret=ret.substring(0,ret.length()-1); }else{ ret=""; } return ret;}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)