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);
        }