• wcf调用oracle存储过程


     1 public IList<ACCP_RAIN> QueryAll(string beginTime, string endTime, string type)
     2         {
     3             beginTime = "2012-1-1"; endTime = "2014-10-10"; type = "ZQ";
     4             List<ACCP_RAIN> list = new List<ACCP_RAIN>();
     5             DbDataReader reader = null;
     6 
     7             try
     8             {
     9                 OracleParameter[] paras = new OracleParameter[4];
    10                 OracleParameter para1 = new OracleParameter("ptm1", OracleType.VarChar);
    11                 para1.Value = beginTime;
    12                 OracleParameter para2 = new OracleParameter("ptm2", OracleType.VarChar);
    13                 para2.Value = endTime;
    14                 OracleParameter para3 = new OracleParameter("retp", OracleType.VarChar);
    15                 para3.Value = type;
    16                 OracleParameter para4 = new OracleParameter("p_cur", OracleType.Cursor);
    17                 para4.Direction = ParameterDirection.Output;
    18                 paras[0] = para1;
    19                 paras[1] = para2;
    20                 paras[2] = para3;
    21                 paras[3] = para4;
    22                 
    23                 DbConnection conn = DbFactory.GetDbCon();
    24                 conn.Open();
    25                 DbTransaction trans = conn.BeginTransaction();
    26                 reader = (DbHelper as OracleHelper).ExecuteReader(conn, trans, CommandType.StoredProcedure, "GETDRP.PROC_GETDRP", paras);
    27                 while (reader.Read())
    28                 {
    29                     list.Add(SqlDataToEntity.ToEntity<ACCP_RAIN>(reader));
    30                 }
    31                 trans.Dispose();
    32                 conn.Close();
    33                 conn.Dispose();
    34             }
    35             catch (Exception ex)
    36             {
    37                 return null;
    38             }
    39             finally
    40             {
    41                 if (reader != null) reader.Close();
    42             }
    43             return list;
    44         }
    View Code
      public DbDataReader ExecuteReader(DbConnection connection, DbTransaction trans, CommandType commandType, string commandText, params DbParameter[] cmdParms)
            {
                DbDataReader reader2;
                OracleCommand cmd = new OracleCommand();
                if ((cmdParms != null) && (cmdParms.Length == 0))
                {
                    cmdParms = null;
                }
                try
                {
                    PrepareCommand((OracleConnection)connection, (OracleTransaction)trans, cmd, commandType, commandText, (OracleParameter[])cmdParms);
                    DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    reader2 = reader;
                }
                catch (Exception exception)
                {
                    connection.Dispose();
                    throw exception;
                }
                finally
                {
                    cmd.Dispose();
                }
                return reader2;
            }
    View Code
     private static void PrepareCommand(OracleConnection connection, OracleTransaction trans, OracleCommand cmd, CommandType cmdType, string cmdText, OracleParameter[] cmdParms)
            {
                if (trans == null)
                {
                    cmd.Connection = connection;
                }
                else
                {
                    cmd.Connection = trans.Connection;
                    cmd.Transaction = trans;
                }
                if (cmd.Connection.State != ConnectionState.Open)
                {
                    cmd.Connection.Open();
                }
                cmd.CommandType = cmdType;
                cmd.CommandText = cmdText;
                cmd.CommandTimeout = 0;
                if (cmdParms != null)
                {
                    foreach (OracleParameter parameter in cmdParms)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                }
            }
    View Code
  • 相关阅读:
    关于时间的字词
    Postgresql 存储过程调试 1
    Delphi 调试日子
    Delphi 调试日子
    TList,TObjectList 使用——资源释放
    Lazarus开发环境编译选项配置
    Delphi 递归搜索.SVN文件夹并“处理”
    Delphi 路径相关函数
    如何掌握程序语言(王垠)
    struct/class等内存字节对齐问题详解
  • 原文地址:https://www.cnblogs.com/zxbzl/p/4043058.html
Copyright © 2020-2023  润新知