public void TestIListRemove()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                SqlServerCommand             command = new SqlServerCommand("test", "procTest");
                SqlServerParameterCollection coll    = command.Parameters;
                SqlServerParameter           param   = command.CreateParameter();
                param.ParameterName = "Param1";
                coll.Add(param);
                Assert.IsTrue(coll.Contains(param));
                Assert.IsTrue(coll.Contains("Param1"));
                Assert.AreEqual(1, coll.Count);

                SqlServerParameter param2 = command.CreateParameter();
                param2.ParameterName = "Param2";
                coll.Add(param2);
                Assert.IsTrue(coll.Contains(param2));
                Assert.IsTrue(coll.Contains("Param2"));
                Assert.AreEqual(2, coll.Count);

                ((IList)coll).Remove(param);
                Assert.IsTrue(coll.Contains(param2));
                Assert.IsTrue(coll.Contains("Param2"));
                Assert.IsFalse(coll.Contains(param));
                Assert.IsFalse(coll.Contains("Param1"));
                Assert.AreEqual(1, coll.Count);
            }
        }
        public void TestSetItemByName()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                SqlServerCommand             command = new SqlServerCommand("test", "procTest");
                SqlServerParameterCollection coll    = command.Parameters;
                SqlServerParameter           param   = command.CreateParameter();
                param.ParameterName = "Param1";
                coll.Add(param);
                Assert.IsTrue(coll.Contains(param));
                Assert.IsTrue(coll.Contains("Param1"));
                Assert.AreEqual(param, coll[0]);
                Assert.AreEqual(param, coll["Param1"]);
                Assert.AreEqual(param, ((IList)coll)[0]);

                param = command.CreateParameter();
                param.ParameterName = "Param2";
                coll["Param1"]      = param;

                Assert.AreEqual(1, coll.Count);
                Assert.IsTrue(coll.Contains(param));
                Assert.IsTrue(coll.Contains("Param2"));
                Assert.AreEqual(param, coll[0]);
                Assert.AreEqual(param, coll["Param2"]);
                Assert.AreEqual(param, ((IList)coll)[0]);
            }
        }
Пример #3
0
        /// <summary>
        /// Ajout du paramètre en entrée de la commande envoyée à SQL Server.
        /// </summary>
        /// <param name="parameters">Collection des paramètres dans laquelle ajouter le nouveau paramètre.</param>
        /// <param name="primaryKeyName">Nom de la clé primaire.</param>
        /// <param name="primaryKeyValue">Valeur de la clé primaire.</param>
        protected override void AddPrimaryKeyParameter(SqlServerParameterCollection parameters, string primaryKeyName, object primaryKeyValue)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            parameters.AddWithValue("PK_" + primaryKeyName, primaryKeyValue);
        }
 public void TestAddFullTextWithValue()
 {
     using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
         SqlServerCommand             command = new SqlServerCommand("test", "procTest");
         SqlServerParameterCollection coll    = command.Parameters;
         coll.AddFullTextWithValue("Param1", "le petit chat");
         Assert.AreEqual("(FORMSOF(INFLECTIONAL, \"petit\") OR FORMSOF(THESAURUS, \"petit\")) AND (FORMSOF(INFLECTIONAL, \"chat\") OR FORMSOF(THESAURUS, \"chat\"))", coll["@Param1"].Value);
     }
 }
Пример #5
0
        /// <summary>
        /// Ajoute les paramètres d'insertion.
        /// </summary>
        /// <param name="bean">Bean à insérér.</param>
        /// <param name="beanDefinition">Définition du bean.</param>
        /// <param name="parameters">Paramètres de la commande SQL.</param>
        /// <param name="columnSelector">Selecteur de colonnes à mettre à jour ou à ignorer.</param>
        protected void AddInsertParameters(T bean, BeanDefinition beanDefinition, SqlServerParameterCollection parameters, ColumnSelector columnSelector)
        {
            if (beanDefinition == null)
            {
                throw new ArgumentNullException("beanDefinition");
            }

            foreach (BeanPropertyDescriptor property in beanDefinition.Properties)
            {
                if (property.IsPrimaryKey || property.MemberName == null || (columnSelector != null && !columnSelector.ColumnList.Contains(property.MemberName)))
                {
                    continue;
                }

                object value = property.GetValue(bean);
                if (value != null)
                {
                    ExtendedValue extValue = value as ExtendedValue;
                    if (extValue != null)
                    {
                        value = extValue.Value;
                    }
                }

                IStoreRule rule      = this.GetStoreRule(property.PropertyName);
                ValueRule  valueRule = null;
                if (rule != null)
                {
                    valueRule = rule.GetInsertValue(value);
                }

                if (valueRule != null)
                {
                    switch (valueRule.Action)
                    {
                    case ActionRule.DoNothing:
                        continue;

                    case ActionRule.Update:
                        value = valueRule.Value;
                        break;

                    default:
                        throw new NotSupportedException();
                    }
                }

                // Ajout du paramètre en entrée de la commande.
                SqlServerParameter parameter = AddParameter(parameters, property, value);
                if (property.PrimitiveType == typeof(byte[]))
                {
                    parameter.DbType = DbType.Binary;
                }
            }
        }
 public void TestAdd()
 {
     using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
         SqlServerCommand             command = new SqlServerCommand("test", "procTest");
         SqlServerParameterCollection coll    = command.Parameters;
         SqlServerParameter           param   = command.CreateParameter();
         param.ParameterName = "Param1";
         coll.Add(param);
         Assert.IsTrue(coll.Contains(param));
         Assert.IsTrue(coll.Contains("Param1"));
         Assert.IsTrue(((IList)coll).Contains(param));
     }
 }
Пример #7
0
        /// <summary>
        /// Ajoute un paramètre à une collection avec sa valeur.
        /// </summary>
        /// <param name="parameters">Collection de paramètres dans laquelle le nouveau paramètre est créé.</param>
        /// <param name="property">Propriété correspondant au paramètre.</param>
        /// <param name="value">Valeur du paramètre.</param>
        /// <returns>Paramètre ajouté.</returns>
        protected override SqlServerParameter AddParameter(SqlServerParameterCollection parameters, BeanPropertyDescriptor property, object value)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            if (property == null)
            {
                throw new ArgumentNullException("property");
            }

            return(parameters.AddWithValue(property.MemberName, value));
        }
        public void TestICollectionCopyTo()
        {
            using (TransactionScope tx = new TransactionScope(TransactionScopeOption.Required)) {
                SqlServerCommand             command = new SqlServerCommand("test", "procTest");
                SqlServerParameterCollection coll    = command.Parameters;
                SqlServerParameter           param   = command.CreateParameter();
                param.ParameterName = "Param1";
                coll.Add(param);
                Assert.IsTrue(coll.Contains(param));
                Assert.IsTrue(coll.Contains("Param1"));
                Assert.IsTrue(((IList)coll).Contains(param));

                object[] array = new object[1];
                ((ICollection)coll).CopyTo(array, 0);
                Assert.AreEqual(param, array[0]);
            }
        }
Пример #9
0
 /// <summary>
 /// Ajoute un paramètre à une collection avec sa valeur.
 /// </summary>
 /// <param name="parameters">Collection de paramètres dans laquelle le nouveau paramètre est créé.</param>
 /// <param name="property">Propriété correspondant au paramètre.</param>
 /// <param name="value">Valeur du paramètre.</param>
 /// <returns>Paramètre ajouté.</returns>
 protected abstract SqlServerParameter AddParameter(SqlServerParameterCollection parameters, BeanPropertyDescriptor property, object value);
Пример #10
0
 /// <summary>
 /// Ajout du paramètre en entrée de la commande envoyée à SQL Server.
 /// </summary>
 /// <param name="parameters">Collection des paramètres dans laquelle ajouter le nouveau paramètre.</param>
 /// <param name="primaryKeyName">Nom de la clé primaire.</param>
 /// <param name="primaryKeyValue">Valeur de la clé primaire.</param>
 protected abstract void AddPrimaryKeyParameter(SqlServerParameterCollection parameters, string primaryKeyName, object primaryKeyValue);
Пример #11
0
        /// <summary>
        /// Ajoute les paramètres à une commande de mise à jour.
        /// </summary>
        /// <param name="bean">Bean à mettre à jour.</param>
        /// <param name="beanDefinition">Définition du bean.</param>
        /// <param name="parameters">Paramètres de la commande SQL.</param>
        /// <param name="columnSelector">Selecteur de colonnes à mettre à jour ou à ignorer.</param>
        protected void AddUpdateParameters(T bean, BeanDefinition beanDefinition, SqlServerParameterCollection parameters, ColumnSelector columnSelector)
        {
            if (beanDefinition == null)
            {
                throw new ArgumentNullException("beanDefinition");
            }

            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            foreach (BeanPropertyDescriptor property in beanDefinition.Properties)
            {
                if (property.MemberName == null || (columnSelector != null && !columnSelector.ColumnList.Contains(property.MemberName) && !property.IsPrimaryKey))
                {
                    continue;
                }

                object value = property.GetValue(bean);
                if (value != null)
                {
                    ExtendedValue extValue = value as ExtendedValue;
                    if (extValue != null)
                    {
                        value = extValue.Value;
                    }
                }

                if (property.IsPrimaryKey)
                {
                    AddPrimaryKeyParameter(parameters, property.MemberName, value);
                }

                IStoreRule rule      = this.GetStoreRule(property.PropertyName);
                ValueRule  valueRule = null;
                if (rule != null)
                {
                    valueRule = rule.GetUpdateValue(value);
                    if (valueRule != null && valueRule.Action == ActionRule.DoNothing)
                    {
                        continue;
                    }
                }

                if (valueRule == null)
                {
                    // Ajout du paramètre en entrée de la commande envoyée à SQL Server.
                    SqlServerParameter parameter = AddParameter(parameters, property, value);
                    if (property.PrimitiveType == typeof(byte[]))
                    {
                        parameter.DbType = DbType.Binary;
                    }
                }
                else
                {
                    parameters.AddWithValue(property.MemberName, valueRule.Value);
                }

                // Contrainte de la valeur à mettre à jour
                if (rule != null)
                {
                    valueRule = rule.GetWhereClause(value);
                    if (valueRule != null && valueRule.Action != ActionRule.DoNothing)
                    {
                        parameters.AddWithValue("RU_" + property.MemberName, valueRule.Value);
                    }
                }
            }
        }
Пример #12
0
 /// <summary>
 /// Ajoute un paramètre à une collection avec sa valeur.
 /// </summary>
 /// <param name="parameters">Collection de paramètres dans laquelle le nouveau paramètre est créé.</param>
 /// <param name="property">Propriété correspondant au paramètre.</param>
 /// <param name="value">Valeur du paramètre.</param>
 /// <returns>Paramètre ajouté.</returns>
 protected override SqlServerParameter AddParameter(SqlServerParameterCollection parameters, BeanPropertyDescriptor property, object value)
 {
     return(parameters.AddWithValue(property.MemberName, value));
 }
Пример #13
0
 /// <summary>
 /// Ajout du paramètre en entrée de la commande envoyée à SQL Server.
 /// </summary>
 /// <param name="parameters">Collection des paramètres dans laquelle ajouter le nouveau paramètre.</param>
 /// <param name="primaryKeyName">Nom de la clé primaire.</param>
 /// <param name="primaryKeyValue">Valeur de la clé primaire.</param>
 protected override void AddPrimaryKeyParameter(SqlServerParameterCollection parameters, string primaryKeyName, object primaryKeyValue)
 {
 }