示例#1
0
        protected override IDbCommand CreateCommand(IDbHelper db, IMappingProvider mappingProvider, object commandType, IDictionary <string, object> values)
        {
            IStatement statement = mappingProvider.GetStatement(commandType);


            StringBuilder sb        = new StringBuilder();
            IDbCommand    dbCommand = db.Connection.CreateCommand();

            dbCommand.CommandText = statement.CommandText;
            dbCommand.CommandType = statement.CommandType;

            foreach (KeyValuePair <string, IParameter> kv in statement.Parameters)
            {
                object          peropertyValue = values[kv.Key];
                OracleParameter parameter      = (OracleParameter)kv.Value;
                global::Oracle.ManagedDataAccess.Client.OracleParameter dataParameter = null;
                if (parameter.IsCursor)
                {
                    dataParameter = new global::Oracle.ManagedDataAccess.Client.OracleParameter();
                    dataParameter.ParameterName = parameter.ParameterName;
                    dataParameter.OracleDbType  = OracleDbType.RefCursor;
                    CreateParameter(parameter.ParameterName, peropertyValue, parameter.PropertyType, parameter.Size);
                }
                else
                {
                    dataParameter = (global::Oracle.ManagedDataAccess.Client.OracleParameter)CreateParameter(parameter.ParameterName, peropertyValue, parameter.PropertyType, parameter.Size);
                }
                dataParameter.Direction = parameter.Direction;
                dbCommand.Parameters.Add(dataParameter);
            }

            return(dbCommand);
        }
示例#2
0
        protected virtual IDbCommand CreateCommand(IDbHelper session, IMappingProvider mappingProvider, object commandType, IDictionary <string, object> values)
        {
            IStatement statement = mappingProvider.GetStatement(commandType);


            IDbCommand dbCommand = session.Connection.CreateCommand();

            dbCommand.CommandText = statement.CommandText;
            dbCommand.CommandType = statement.CommandType;

            foreach (KeyValuePair <string, IParameter> kv in statement.Parameters)
            {
                object         peropertyValue = values[kv.Key];
                IParameter     parameter      = kv.Value;
                IDataParameter dataParameter  = CreateParameter(parameter.ParameterName, peropertyValue, parameter.PropertyType, parameter.Size);
                dataParameter.Direction = parameter.Direction;
                dbCommand.Parameters.Add(dataParameter);
            }

            return(dbCommand);
        }
示例#3
0
        public virtual int ExecuteNonQuery(IDbHelper db, IMappingProvider mappingProvider, object commandType, IDictionary <string, object> values)
        {
            IStatement statement = mappingProvider.GetStatement(commandType);

            IDbCommand dbCommand   = CreateCommand(db, mappingProvider, commandType, values);
            int        returnCount = db.ExecuteNonQuery(dbCommand);

            foreach (KeyValuePair <string, IParameter> kv in statement.OutParameters)
            {
                IParameter     parameter     = kv.Value;
                IDataParameter dataParameter = (IDataParameter)dbCommand.Parameters[parameter.ParameterName];
                object         value         = ConvertDbValue(dataParameter.Value, parameter.PropertyType);
                if (values.ContainsKey(kv.Key))
                {
                    values[kv.Key] = value;
                }
                else
                {
                    values.Add(kv.Key, value);
                }
            }
            return(returnCount);
        }