protected override void OnConnectionTypeCreated(Type connectionType)
        {
            DB2iSeriesTypes.ConnectionType = connectionType;

            dynamic ass = connectionType.Assembly;

            DB2iSeriesTypes.BigInt.Type         = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2BigInt", true);
            DB2iSeriesTypes.Binary.Type         = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Binary", true);
            DB2iSeriesTypes.Blob.Type           = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Blob", true);
            DB2iSeriesTypes.Char.Type           = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Char", true);
            DB2iSeriesTypes.CharBitData.Type    = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2CharBitData", true);
            DB2iSeriesTypes.Clob.Type           = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Clob", true);
            DB2iSeriesTypes.Date.Type           = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Date", true);
            DB2iSeriesTypes.DataLink.Type       = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2DataLink", true);
            DB2iSeriesTypes.DbClob.Type         = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2DbClob", true);
            DB2iSeriesTypes.DecFloat16.Type     = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2DecFloat16", true);
            DB2iSeriesTypes.DecFloat34.Type     = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2DecFloat34", true);
            DB2iSeriesTypes.Decimal.Type        = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Decimal", true);
            DB2iSeriesTypes.Double.Type         = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Double", true);
            DB2iSeriesTypes.Graphic.Type        = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Graphic", true);
            DB2iSeriesTypes.Integer.Type        = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Integer", true);
            DB2iSeriesTypes.Numeric.Type        = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Numeric", true);
            DB2iSeriesTypes.Real.Type           = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Real", true);
            DB2iSeriesTypes.RowId.Type          = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Rowid", true);
            DB2iSeriesTypes.SmallInt.Type       = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2SmallInt", true);
            DB2iSeriesTypes.Time.Type           = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Time", true);
            DB2iSeriesTypes.TimeStamp.Type      = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2TimeStamp", true);
            DB2iSeriesTypes.VarBinary.Type      = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2VarBinary", true);
            DB2iSeriesTypes.VarChar.Type        = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2VarChar", true);
            DB2iSeriesTypes.VarCharBitData.Type = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2VarCharBitData", true);
            DB2iSeriesTypes.VarGraphic.Type     = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2VarGraphic", true);
            DB2iSeriesTypes.Xml.Type            = ass.GetType(DB2iSeriesTools.AssemblyName + ".iDB2Xml", true);

            SetProviderField(DB2iSeriesTypes.BigInt, typeof(long), "GetiDB2BigInt");
            SetProviderField(DB2iSeriesTypes.Binary, typeof(byte[]), "GetiDB2Binary");
            SetProviderField(DB2iSeriesTypes.Blob, typeof(byte[]), "GetiDB2Blob");
            SetProviderField(DB2iSeriesTypes.Char, typeof(string), "GetiDB2Char");
            SetProviderField(DB2iSeriesTypes.CharBitData, typeof(byte[]), "GetiDB2CharBitData");
            SetProviderField(DB2iSeriesTypes.Clob, typeof(string), "GetiDB2Clob");
            SetProviderField(DB2iSeriesTypes.DataLink, typeof(string), "GetiDB2DataLink");
            SetProviderField(DB2iSeriesTypes.Date, typeof(System.DateTime), "GetiDB2Date");
            SetProviderField(DB2iSeriesTypes.DbClob, typeof(string), "GetiDB2DbClob");
            SetProviderField(DB2iSeriesTypes.DecFloat16, typeof(decimal), "GetiDB2DecFloat16");
            SetProviderField(DB2iSeriesTypes.DecFloat34, typeof(decimal), "GetiDB2DecFloat34");
            SetProviderField(DB2iSeriesTypes.Decimal, typeof(decimal), "GetiDB2Decimal");
            SetProviderField(DB2iSeriesTypes.Double, typeof(double), "GetiDB2Double");
            SetProviderField(DB2iSeriesTypes.Graphic, typeof(string), "GetiDB2Graphic");
            SetProviderField(DB2iSeriesTypes.Integer, typeof(int), "GetiDB2Integer");
            SetProviderField(DB2iSeriesTypes.Numeric, typeof(decimal), "GetiDB2Numeric");
            SetProviderField(DB2iSeriesTypes.Real, typeof(float), "GetiDB2Real");
            SetProviderField(DB2iSeriesTypes.RowId, typeof(byte[]), "GetiDB2RowId");
            SetProviderField(DB2iSeriesTypes.SmallInt, typeof(short), "GetiDB2SmallInt");
            SetProviderField(DB2iSeriesTypes.Time, typeof(System.DateTime), "GetiDB2Time");
            SetProviderField(DB2iSeriesTypes.TimeStamp, typeof(System.DateTime), "GetiDB2TimeStamp");
            SetProviderField(DB2iSeriesTypes.VarBinary, typeof(byte[]), "GetiDB2VarBinary");
            SetProviderField(DB2iSeriesTypes.VarChar, typeof(string), "GetiDB2VarChar");
            SetProviderField(DB2iSeriesTypes.VarCharBitData, typeof(byte[]), "GetiDB2VarCharBitData");
            SetProviderField(DB2iSeriesTypes.VarGraphic, typeof(string), "GetiDB2VarGraphic");
            SetProviderField(DB2iSeriesTypes.Xml, typeof(string), "GetiDB2Xml");

            MappingSchema.AddScalarType(DB2iSeriesTypes.BigInt, GetNullValue(DB2iSeriesTypes.BigInt), true, DataType.Int64);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Binary, GetNullValue(DB2iSeriesTypes.Binary), true, DataType.Binary);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Blob, GetNullValue(DB2iSeriesTypes.Blob), true, DataType.Blob);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Char, GetNullValue(DB2iSeriesTypes.Char), true, DataType.Char);
            MappingSchema.AddScalarType(DB2iSeriesTypes.CharBitData, GetNullValue(DB2iSeriesTypes.CharBitData), true, DataType.Binary);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Clob, GetNullValue(DB2iSeriesTypes.Clob), true, DataType.NText);
            MappingSchema.AddScalarType(DB2iSeriesTypes.DataLink, GetNullValue(DB2iSeriesTypes.DataLink), true, DataType.NText);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Date, GetNullValue(DB2iSeriesTypes.Date), true, DataType.Date);
            MappingSchema.AddScalarType(DB2iSeriesTypes.DbClob, GetNullValue(DB2iSeriesTypes.DbClob), true, DataType.NText);
            MappingSchema.AddScalarType(DB2iSeriesTypes.DecFloat16, GetNullValue(DB2iSeriesTypes.DecFloat16), true, DataType.Decimal);
            MappingSchema.AddScalarType(DB2iSeriesTypes.DecFloat34, GetNullValue(DB2iSeriesTypes.DecFloat34), true, DataType.Decimal);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Decimal, GetNullValue(DB2iSeriesTypes.Decimal), true, DataType.Decimal);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Double, GetNullValue(DB2iSeriesTypes.Double), true, DataType.Double);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Graphic, GetNullValue(DB2iSeriesTypes.Graphic), true, DataType.NText);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Integer, GetNullValue(DB2iSeriesTypes.Integer), true, DataType.Int32);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Numeric, GetNullValue(DB2iSeriesTypes.Numeric), true, DataType.Decimal);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Real, GetNullValue(DB2iSeriesTypes.Real), true, DataType.Single);
            MappingSchema.AddScalarType(DB2iSeriesTypes.RowId, GetNullValue(DB2iSeriesTypes.RowId), true, DataType.VarBinary);
            MappingSchema.AddScalarType(DB2iSeriesTypes.SmallInt, GetNullValue(DB2iSeriesTypes.SmallInt), true, DataType.Int16);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Time, GetNullValue(DB2iSeriesTypes.Time), true, DataType.Time);
            MappingSchema.AddScalarType(DB2iSeriesTypes.TimeStamp, GetNullValue(DB2iSeriesTypes.TimeStamp), true, DataType.DateTime2);
            MappingSchema.AddScalarType(DB2iSeriesTypes.VarBinary, GetNullValue(DB2iSeriesTypes.VarBinary), true, DataType.VarBinary);
            MappingSchema.AddScalarType(DB2iSeriesTypes.VarChar, GetNullValue(DB2iSeriesTypes.VarChar), true, DataType.VarChar);
            MappingSchema.AddScalarType(DB2iSeriesTypes.VarCharBitData, GetNullValue(DB2iSeriesTypes.VarCharBitData), true, DataType.VarBinary);
            MappingSchema.AddScalarType(DB2iSeriesTypes.VarGraphic, GetNullValue(DB2iSeriesTypes.VarGraphic), true, DataType.NText);
            MappingSchema.AddScalarType(DB2iSeriesTypes.Xml, GetNullValue(DB2iSeriesTypes.Xml), true, DataType.Xml);
            _setBlob = GetSetParameter(connectionType, "iDB2Parameter", "iDB2DbType", "iDB2DbType", "iDB2Blob");
            if (DataConnection.TraceSwitch.TraceInfo)
            {
                DataConnection.WriteTraceLine(DataReaderType.AssemblyEx().FullName, DataConnection.TraceSwitch.DisplayName);
            }
            DB2iSeriesTools.Initialized();
        }