Beispiel #1
0
            protected override void AddParameter(DbCommand command, QueryParameter parameter, object value)
            {
                QueryType qt = parameter.QueryType;

                if (qt == null)
                {
                    qt = this.provider.Language.TypeSystem.GetColumnType(parameter.Type);
                }

                var p = new VfpParameter(parameter.Name, this.GetOleDbType(qt).ToVfpType());

                p.Size = qt.Length;
                ((VfpCommand)command).Parameters.Add(p);

                //if (qt.Precision != 0) {
                //    p.Precision = (byte)qt.Precision;
                //}

                //if (qt.Scale != 0) {
                //    p.Scale = (byte)qt.Scale;
                //}

                if (value != null && value is TimeSpan)
                {
                    p.Value = ((TimeSpan)value).TotalSeconds;
                }
                else
                {
                    p.Value = value ?? DBNull.Value;
                }
            }
Beispiel #2
0
        public void VfpType_ShouldSetDbType(VfpTypeAndDbTypeTestCase testCase)
        {
            var parameter = new VfpParameter {
                VfpType = testCase.VfpType
            };

            Assert.Equal(testCase.DbType, parameter.DbType);
        }
Beispiel #3
0
        public void IsNullable_ShouldSetIsNullable(bool isNullable)
        {
            var parameter = new VfpParameter {
                IsNullable = isNullable
            };

            Assert.Equal(isNullable, parameter.IsNullable);
        }
Beispiel #4
0
        public void SourceVersion_ShouldSetSourceVersion(DataRowVersion dataRowVersion)
        {
            var parameter = new VfpParameter {
                SourceVersion = dataRowVersion
            };

            Assert.Equal(dataRowVersion, parameter.SourceVersion);
        }
Beispiel #5
0
        public void ParameterName_ShouldSetParameterName(string parameterName)
        {
            var parameter = new VfpParameter {
                ParameterName = parameterName
            };

            Assert.Equal(parameterName, parameter.ParameterName);
        }
Beispiel #6
0
        public void SourceColumnNullMapping_ShouldSetSourceColumnNullMapping(bool sourceColumnNullMapping)
        {
            var parameter = new VfpParameter {
                SourceColumnNullMapping = sourceColumnNullMapping
            };

            Assert.Equal(sourceColumnNullMapping, parameter.SourceColumnNullMapping);
        }
Beispiel #7
0
        public void SourceColumn_ShouldSetSourceColumn(string sourceColumn)
        {
            var parameter = new VfpParameter {
                SourceColumn = sourceColumn
            };

            Assert.Equal(sourceColumn, parameter.SourceColumn);
        }
Beispiel #8
0
        public void Direction_ShouldSetDirection(ParameterDirection direction)
        {
            var parameter = new VfpParameter {
                Direction = direction
            };

            Assert.Equal(direction, parameter.Direction);
        }
Beispiel #9
0
        public void Size_ShouldSetSize(int size)
        {
            var parameter = new VfpParameter {
                Size = size
            };

            Assert.Equal(size, parameter.Size);
        }
Beispiel #10
0
        public void SizeTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(0, parameter.Size);

            parameter.Size = 8;
            Assert.AreEqual(8, parameter.Size);
        }
Beispiel #11
0
        public void Value_ShouldSetValueAndVfpType(object value, VfpClient.VfpType vfpType)
        {
            var parameter = new VfpParameter {
                Value = value
            };

            Assert.Equal(value, parameter.Value);
            Assert.Equal(vfpType, parameter.VfpType);
        }
Beispiel #12
0
        public void SourceColumnTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(string.Empty, parameter.SourceColumn);

            parameter.SourceColumn = "Name";
            Assert.AreEqual("Name", parameter.SourceColumn);
            Assert.AreNotEqual("NAME", parameter.SourceColumn);
        }
Beispiel #13
0
        public void IsNullableTest()
        {
            var parameter = new VfpParameter();

            Assert.IsFalse(parameter.IsNullable);

            parameter.IsNullable = true;
            Assert.IsTrue(parameter.IsNullable);

            parameter.IsNullable = false;
            Assert.IsFalse(parameter.IsNullable);
        }
Beispiel #14
0
        public void SourceColumnNullMappingTest()
        {
            var parameter = new VfpParameter();

            Assert.IsFalse(parameter.SourceColumnNullMapping);

            parameter.SourceColumnNullMapping = true;
            Assert.IsTrue(parameter.SourceColumnNullMapping);

            parameter.SourceColumnNullMapping = false;
            Assert.IsFalse(parameter.SourceColumnNullMapping);
        }
Beispiel #15
0
            private void ReplaceDuplicates(VfpParameter parameter, MatchCollection matches)
            {
                // Ordering by descending index so that as CommandText changes are made they won't invalidate the next match.Index.
                foreach (var match in matches.Cast <Match>().OrderByDescending(x => x.Index))
                {
                    var newParameter = new VfpParameter(parameter);
                    newParameter.ParameterName = GetUniqueParameterName(newParameter.ParameterName);
                    VfpCommand.Parameters.Add(newParameter);
                    VfpCommand.CommandText = GetCommandTextWithNewParameterName(match, newParameter.ParameterName);
                }

                VfpCommand.Parameters.Remove(parameter);
            }
Beispiel #16
0
        public void ParameterNameTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(string.Empty, parameter.ParameterName);

            parameter.ParameterName = "Input";
            Assert.AreEqual("Input", parameter.ParameterName);
            Assert.AreNotEqual("INPUT", parameter.ParameterName);

            parameter = new VfpParameter("Output", VfpType.Double);
            Assert.AreEqual("Output", parameter.ParameterName);
            Assert.AreNotEqual("output", parameter.ParameterName);
        }
Beispiel #17
0
        public void SourceVersionTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(DataRowVersion.Current, parameter.SourceVersion);

            parameter.SourceVersion = DataRowVersion.Default;
            Assert.AreEqual(DataRowVersion.Default, parameter.SourceVersion);

            parameter.SourceVersion = DataRowVersion.Original;
            Assert.AreEqual(DataRowVersion.Original, parameter.SourceVersion);

            parameter.SourceVersion = DataRowVersion.Proposed;
            Assert.AreEqual(DataRowVersion.Proposed, parameter.SourceVersion);

            parameter.SourceVersion = DataRowVersion.Current;
            Assert.AreEqual(DataRowVersion.Current, parameter.SourceVersion);
        }
Beispiel #18
0
        public void DirectionTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(ParameterDirection.Input, parameter.Direction);

            parameter.Direction = ParameterDirection.InputOutput;
            Assert.AreEqual(ParameterDirection.InputOutput, parameter.Direction);

            parameter.Direction = ParameterDirection.Output;
            Assert.AreEqual(ParameterDirection.Output, parameter.Direction);

            parameter.Direction = ParameterDirection.ReturnValue;
            Assert.AreEqual(ParameterDirection.ReturnValue, parameter.Direction);

            parameter.Direction = ParameterDirection.Input;
            Assert.AreEqual(ParameterDirection.Input, parameter.Direction);
        }
Beispiel #19
0
        public void ValueTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(null, parameter.Value);

            parameter.Value = "100";
            Assert.AreEqual("100", parameter.Value);
            Assert.AreNotEqual(100, parameter.Value);
            Assert.AreNotEqual(Int32.Parse("100"), parameter.Value);
            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);
            Assert.AreEqual(DbType.String, parameter.DbType);

            parameter.Value = 1000;
            Assert.AreEqual(1000, parameter.Value);
            Assert.AreEqual(Int32.Parse("1000"), parameter.Value);
            Assert.AreNotEqual("1000", parameter.Value);
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);
            Assert.AreEqual(DbType.Int32, parameter.DbType);

            parameter.Value = false;
            Assert.AreEqual(false, parameter.Value);
            Assert.AreNotEqual("false", parameter.Value);
            Assert.AreNotEqual(0, parameter.Value);
            Assert.AreEqual(VfpType.Logical, parameter.VfpType);
            Assert.AreEqual(DbType.Boolean, parameter.DbType);

            parameter.Value = 2462.2325;
            Assert.AreEqual(2462.2325, parameter.Value);
            Assert.AreNotEqual(2462.23, parameter.Value);
            Assert.AreNotEqual(2462, parameter.Value);
            Assert.AreEqual(VfpType.Double, parameter.VfpType);
            Assert.AreEqual(DbType.Double, parameter.DbType);

            parameter.Value = 32.41f;
            Assert.AreEqual(32.41f, parameter.Value);
            Assert.AreNotEqual(32.41, parameter.Value);
            Assert.AreEqual(VfpType.Float, parameter.VfpType);
            Assert.AreEqual(DbType.Single, parameter.DbType);
        }
Beispiel #20
0
        internal VfpParameter CreateVfpParameter(string name, TypeUsage type, ParameterMode mode, object value)
        {
            int?size;

            var result = new VfpParameter(name, value);

            result.Direction = ParameterDirection.Input;
            result.VfpType   = GetVfpType(type, out size);

            if (size.HasValue && (result.Size != size.Value))
            {
                result.Size = size.Value;
            }

            var isNullable = type.IsNullable();

            if (isNullable != result.IsNullable)
            {
                result.IsNullable = isNullable;
            }

            return(result);
        }
Beispiel #21
0
        public void ParameterName_ShouldDefaultToEmptyString()
        {
            var parameter = new VfpParameter();

            Assert.Equal(Empty, parameter.ParameterName);
        }
Beispiel #22
0
        public void DbTypeTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(DbType.String, parameter.DbType);

            parameter.DbType = DbType.AnsiString;
            Assert.AreEqual(DbType.AnsiString, parameter.DbType);
            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);

            parameter.DbType = DbType.AnsiStringFixedLength;
            Assert.AreEqual(DbType.AnsiStringFixedLength, parameter.DbType);
            Assert.AreEqual(VfpType.Character, parameter.VfpType);

            parameter.DbType = DbType.Binary;
            Assert.AreEqual(DbType.Binary, parameter.DbType);
            Assert.AreEqual(VfpType.Varbinary, parameter.VfpType);

            parameter.DbType = DbType.Boolean;
            Assert.AreEqual(DbType.Boolean, parameter.DbType);
            Assert.AreEqual(VfpType.Logical, parameter.VfpType);

            parameter.DbType = DbType.Byte;
            Assert.AreEqual(DbType.Byte, parameter.DbType);
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);

            parameter.DbType = DbType.Currency;
            Assert.AreEqual(DbType.Currency, parameter.DbType);
            Assert.AreEqual(VfpType.Currency, parameter.VfpType);

            parameter.DbType = DbType.Date;
            Assert.AreEqual(DbType.Date, parameter.DbType);
            Assert.AreEqual(VfpType.Date, parameter.VfpType);

            parameter.DbType = DbType.DateTime;
            Assert.AreEqual(DbType.DateTime, parameter.DbType);
            Assert.AreEqual(VfpType.DateTime, parameter.VfpType);

            parameter.DbType = DbType.Decimal;
            Assert.AreEqual(DbType.Decimal, parameter.DbType);
            Assert.AreEqual(VfpType.Numeric, parameter.VfpType);

            parameter.DbType = DbType.Double;
            Assert.AreEqual(DbType.Double, parameter.DbType);
            Assert.AreEqual(VfpType.Double, parameter.VfpType);

            parameter.DbType = DbType.Guid;
            Assert.AreEqual(DbType.Guid, parameter.DbType);
            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);

            parameter.DbType = DbType.Int16;
            Assert.AreEqual(DbType.Int16, parameter.DbType);
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);

            parameter.DbType = DbType.Int32;
            Assert.AreEqual(DbType.Int32, parameter.DbType);
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);

            parameter.DbType = DbType.Int64;
            Assert.AreEqual(DbType.Int64, parameter.DbType);
            Assert.AreEqual(VfpType.Numeric, parameter.VfpType);

            parameter.DbType = DbType.Object;
            Assert.AreEqual(DbType.Object, parameter.DbType);
            Assert.AreEqual(VfpType.Variant, parameter.VfpType);

            parameter.DbType = DbType.SByte;
            Assert.AreEqual(DbType.SByte, parameter.DbType);
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);

            parameter.DbType = DbType.Single;
            Assert.AreEqual(DbType.Single, parameter.DbType);
            Assert.AreEqual(VfpType.Float, parameter.VfpType);

            parameter.DbType = DbType.String;
            Assert.AreEqual(DbType.String, parameter.DbType);
            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);

            parameter.DbType = DbType.StringFixedLength;
            Assert.AreEqual(DbType.StringFixedLength, parameter.DbType);
            Assert.AreEqual(VfpType.Character, parameter.VfpType);

            parameter.DbType = DbType.Time;
            Assert.AreEqual(DbType.Time, parameter.DbType);
            Assert.AreEqual(VfpType.Date, parameter.VfpType);

            parameter.DbType = DbType.UInt16;
            Assert.AreEqual(DbType.UInt16, parameter.DbType);
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);

            parameter.DbType = DbType.UInt32;
            Assert.AreEqual(DbType.UInt32, parameter.DbType);
            Assert.AreEqual(VfpType.Numeric, parameter.VfpType);

            parameter.DbType = DbType.UInt64;
            Assert.AreEqual(DbType.UInt64, parameter.DbType);
            Assert.AreEqual(VfpType.Numeric, parameter.VfpType);

            parameter.DbType = DbType.VarNumeric;
            Assert.AreEqual(DbType.VarNumeric, parameter.DbType);
            Assert.AreEqual(VfpType.Numeric, parameter.VfpType);

            parameter.DbType = DbType.Xml;
            Assert.AreEqual(DbType.String, parameter.DbType);
            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);
        }
Beispiel #23
0
        public void SourceColumnNullMapping_ShouldDefaultToFalse()
        {
            var parameter = new VfpParameter();

            Assert.False(parameter.SourceColumnNullMapping);
        }
Beispiel #24
0
        public void Value_ShouldDefaultToNull()
        {
            var parameter = new VfpParameter();

            Assert.Null(parameter.Value);
        }
Beispiel #25
0
        public void SourceVersion_ShouldDefaultToCurrent()
        {
            var parameter = new VfpParameter();

            Assert.Equal(DataRowVersion.Current, parameter.SourceVersion);
        }
Beispiel #26
0
        public void VfpType_ShouldDefaultToVarchar()
        {
            var parameter = new VfpParameter();

            Assert.Equal(VfpClient.VfpType.Varchar, parameter.VfpType);
        }
Beispiel #27
0
        public void Direction_ShouldDefaultToInput()
        {
            var parameter = new VfpParameter();

            Assert.Equal(ParameterDirection.Input, parameter.Direction);
        }
Beispiel #28
0
        public void IsNullable_ShouldDefaultToFalse()
        {
            var parameter = new VfpParameter();

            Assert.False(parameter.IsNullable);
        }
Beispiel #29
0
        public void SourceColumn_ShouldDefaultToEmptyString()
        {
            var parameter = new VfpParameter();

            Assert.Equal(Empty, parameter.SourceColumn);
        }
Beispiel #30
0
        public void VfpTypeTest()
        {
            var parameter = new VfpParameter();

            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);

            parameter.VfpType = VfpType.AutoIncInteger;
            Assert.AreEqual(VfpType.AutoIncInteger, parameter.VfpType);
            Assert.AreEqual(DbType.Int32, parameter.DbType);

            parameter.VfpType = VfpType.BinaryMemo;
            Assert.AreEqual(VfpType.BinaryMemo, parameter.VfpType);
            Assert.AreEqual(DbType.String, parameter.DbType);

            parameter.VfpType = VfpType.BinaryVarchar;
            Assert.AreEqual(VfpType.BinaryVarchar, parameter.VfpType);
            Assert.AreEqual(DbType.String, parameter.DbType);

            parameter.VfpType = VfpType.Blob;
            Assert.AreEqual(VfpType.Blob, parameter.VfpType);
            Assert.AreEqual(DbType.Binary, parameter.DbType);

            parameter.VfpType = VfpType.Character;
            Assert.AreEqual(VfpType.Character, parameter.VfpType);
            Assert.AreEqual(DbType.StringFixedLength, parameter.DbType);

            parameter.VfpType = VfpType.Currency;
            Assert.AreEqual(VfpType.Currency, parameter.VfpType);
            Assert.AreEqual(DbType.Currency, parameter.DbType);

            parameter.VfpType = VfpType.Date;
            Assert.AreEqual(VfpType.Date, parameter.VfpType);
            Assert.AreEqual(DbType.Date, parameter.DbType);

            parameter.VfpType = VfpType.DateTime;
            Assert.AreEqual(VfpType.DateTime, parameter.VfpType);
            Assert.AreEqual(DbType.DateTime, parameter.DbType);

            parameter.VfpType = VfpType.Double;
            Assert.AreEqual(VfpType.Double, parameter.VfpType);
            Assert.AreEqual(DbType.Double, parameter.DbType);

            parameter.VfpType = VfpType.Float;
            Assert.AreEqual(VfpType.Float, parameter.VfpType);
            Assert.AreEqual(DbType.Decimal, parameter.DbType);

            parameter.VfpType = VfpType.General;
            Assert.AreEqual(VfpType.General, parameter.VfpType);
            Assert.AreEqual(DbType.Object, parameter.DbType);

            parameter.VfpType = VfpType.Integer;
            Assert.AreEqual(VfpType.Integer, parameter.VfpType);
            Assert.AreEqual(DbType.Int32, parameter.DbType);

            parameter.VfpType = VfpType.Logical;
            Assert.AreEqual(VfpType.Logical, parameter.VfpType);
            Assert.AreEqual(DbType.Boolean, parameter.DbType);

            parameter.VfpType = VfpType.Memo;
            Assert.AreEqual(VfpType.Memo, parameter.VfpType);
            Assert.AreEqual(DbType.String, parameter.DbType);

            parameter.VfpType = VfpType.Numeric;
            Assert.AreEqual(VfpType.Numeric, parameter.VfpType);
            Assert.AreEqual(DbType.Decimal, parameter.DbType);

            parameter.VfpType = VfpType.Varbinary;
            Assert.AreEqual(VfpType.Varbinary, parameter.VfpType);
            Assert.AreEqual(DbType.Binary, parameter.DbType);

            parameter.VfpType = VfpType.Varchar;
            Assert.AreEqual(VfpType.Varchar, parameter.VfpType);
            Assert.AreEqual(DbType.String, parameter.DbType);

            parameter.VfpType = VfpType.Variant;
            Assert.AreEqual(VfpType.Variant, parameter.VfpType);
            Assert.AreEqual(DbType.Object, parameter.DbType);
        }