/// <summary> /// Crée le paramètre de liste a ajouter à la commande. /// </summary> /// <param name="command">Commande.</param> /// <returns>Paramètre.</returns> public SqlServerParameter CreateParameter(SqlServerCommand command) { SqlServerParameter parameter = PopulateSqlServerParameter(command.CreateParameter()); command.Parameters.Add(parameter); return(parameter); }
/// <summary> /// Crée une nouvelle instance. /// </summary> /// <param name="command">Commande.</param> public SqlCommandListener(SqlServerCommand command) { _command = command; _logDisposable = ThreadContext.Stacks["NDC"].Push(_command._commandName); Analytics.Instance.IncValue(SqlServerManager.CounterSqlRequestCount, 1); Analytics.Instance.StartProcess(_command._commandName); }
/// <summary> /// Execute l'insertion en base de la collection. /// </summary> /// <param name="commandName">Nom de la commande.</param> /// <param name="dataSourceName">Nom de la dataSource.</param> /// <returns>Liste d'objet insérés.</returns> public ICollection <T> ExecuteInsert(string commandName, string dataSourceName) { SqlServerCommand command = new SqlServerCommand(dataSourceName, commandName, _sbInsert.ToString()); CreateParameter(command); command.CommandTimeout = 0; BeanPropertyDescriptor primaryKey = _beanDefinition.PrimaryKey; using (SqlServerDataReader reader = command.ExecuteReader()) { while (reader.Read()) { T source = _index[reader.GetInt32(1).Value]; primaryKey.SetValue(source, reader.GetInt32(0).Value); } } return(_collection); }
/// <summary> /// Exécute une commande et lit le scalar. /// </summary> /// <typeparam name="T">Type de l'élement.</typeparam> /// <param name="cmd">Commande à exécuter.</param> /// <returns>Objet.</returns> public static T ReadScalar <T>(this SqlServerCommand cmd) { object value = cmd.ExecuteScalar(); /* Valeur non nulle : on la cast et on la renvoie. */ if (value != null) { return((T)value); } /* Valeur null : on renvoie seulement si le type est nullable. */ if (typeof(T).IsClass || Nullable.GetUnderlyingType(typeof(T)) != null) { return((T)value); } /* Valeur null pour un type non nullable : exception. */ throw new NotSupportedException("Null result is not supported."); }
/// <summary> /// Exécute une commande et lit le booléen. /// </summary> /// <param name="cmd">Commande à exécuter.</param> /// <returns>Objet.</returns> public static bool ReadBoolean(this SqlServerCommand cmd) { return(Convert.ToBoolean(cmd.ExecuteScalar())); }