Пример #1
0
        public bool RefreshStoredProcedureParameters(string storedProcedureName)
        {
            if (string.IsNullOrWhiteSpace(storedProcedureName))
            {
                throw new ArgumentNullException("storedProcedureName");
            }

            using (DbCommand dbCmd = CreateCommand(storedProcedureName, 0, CommandType.StoredProcedure, null))
            {
                return(DerivedParametersCache.DeriveParameters(dbCmd, null, true));
            }
        }
Пример #2
0
        // DataDirect Oracle Data Provider Connection String Options support: [ParameterMode = ANSI | BindByOrdinal | BindByName]

#if (ODP_NET || ODP_NET_MANAGED)                // ODP.NET
        /*
         * partial void OnOracleCommandCreating(DbCommand dbCmd, ref bool processed)
         * {
         *      if (processed)
         *              return;
         *
         *      OracleCommand oraCmd = dbCmd as OracleCommand;
         *
         *      if (oraCmd != null)
         *      {
         *              oraCmd.BindByName = true;
         *              processed = true;
         *      }
         * }
         */

        partial void OnOracleReaderExecuting(DbCommand dbCmd, int resultSetCnt /* = 1 */, ref bool processed)
        {
            if (processed)
            {
                return;
            }

            OracleCommand oraCmd = dbCmd as OracleCommand;

            if (oraCmd != null)
            {
                if (oraCmd.CommandType == CommandType.StoredProcedure)
                {
                    int cntRefCursorParam = oraCmd.Parameters.OfType <OracleParameter>().Count(p => p.OracleDbType == OracleDbType.RefCursor && p.Direction != ParameterDirection.Input);

                    if (cntRefCursorParam < resultSetCnt)
                    {
                        if (oraCmd.BindByName || _AutoDeriveRefCursorParameters)
                        {
                            DerivedParametersCache.DeriveParameters(dbCmd, null, false);
                        }
                        else
                        {
                            for (; cntRefCursorParam < resultSetCnt; cntRefCursorParam++)
                            {
                                OracleParameter paramRefCursor = oraCmd.CreateParameter();
                                paramRefCursor.OracleDbType = OracleDbType.RefCursor;
                                paramRefCursor.Direction    = ParameterDirection.Output;
                                paramRefCursor.Value        = DBNull.Value;

                                oraCmd.Parameters.Add(paramRefCursor);
                            }
                        }
                    }
                }

                processed = true;
            }
        }
Пример #3
0
 internal bool Derive(IDictionary <string, object> explicitParameters = null, bool refresh = false)
 {
     return(DerivedParametersCache.DeriveParameters(_DbCommand, explicitParameters, refresh));
 }
Пример #4
0
 public int RemoveCachedStoredProcedures(IEnumerable <string> storedProcedures)
 {
     return(DerivedParametersCache.RemoveStoredProcedures(_Connection, storedProcedures));
 }
Пример #5
0
 public ICollection <string> ListCachedStoredProcedures()
 {
     return(DerivedParametersCache.ListStoredProcedures(_Connection));
 }