protected override GDAStoredProcedure GenerateGDAStoredProcedure(QueryInfo a, out IEnumerable <int> b) { var c = new List <int> (); var d = (TranslatedStoredProcedureName)Translator.GetName(a.StoredProcedureName); var e = new GDAStoredProcedure(!string.IsNullOrEmpty(d.Schema) ? string.Format("\"{0}\".\"{1}\"", d.Schema, d.Name) : string.Format("\"{0}\"", d.Name)); for (int f = 0; f < a.Parameters.Count; f++) { var g = (System.Data.ParameterDirection)((int)a.Parameters [f].Direction); e.AddParameter(":" + (f + 1), a.Parameters [f].Value, g); if (a.Parameters [f].Direction != ParameterDirection.Input) { c.Add(f); } } #if DEVART e.AddParameter(new GDAParameter(":" + (a.Parameters.Count + 1), null) { Direction = System.Data.ParameterDirection.Output, NativeDbType = Devart.Data.Oracle.OracleDbType.Cursor }); #else e.AddOutputParameter(":" + (a.Parameters.Count + 1), (System.Data.DbType) 13); #endif b = c; return(e); }
/// <summary> /// Gera procedure do GDA. /// </summary> /// <param name="queryInfo">Informações da procedure.</param> /// <param name="outputParametersIndexes">Índices de parâmetros de saída.</param> /// <returns>Retorna a procedure em um objeto do tipo <see cref="GDAStoredProcedure"/></returns> protected override GDAStoredProcedure GenerateGDAStoredProcedure(QueryInfo queryInfo, out IEnumerable <int> outputParametersIndexes) { var indexes = new List <int>(); var storedProcedureName = (TranslatedStoredProcedureName)Translator.GetName(queryInfo.StoredProcedureName); var procedure = new GDAStoredProcedure(!string.IsNullOrEmpty(storedProcedureName.Schema) ? string.Format("\"{0}\".\"{1}\"", storedProcedureName.Schema, storedProcedureName.Name) : string.Format("\"{0}\"", storedProcedureName.Name)); for (int i = 0; i < queryInfo.Parameters.Count; i++) { var paramDirection = (System.Data.ParameterDirection)((int)queryInfo.Parameters[i].Direction); procedure.AddParameter(":" + (i + 1), queryInfo.Parameters[i].Value, paramDirection); if (queryInfo.Parameters[i].Direction != ParameterDirection.Input) { indexes.Add(i); } } #if DEVART procedure.AddParameter(new GDAParameter(":" + (queryInfo.Parameters.Count + 1), null) { Direction = System.Data.ParameterDirection.Output, NativeDbType = Devart.Data.Oracle.OracleDbType.Cursor }); #else procedure.AddOutputParameter(":" + (queryInfo.Parameters.Count + 1), (System.Data.DbType) 13); #endif outputParametersIndexes = indexes; return(procedure); }