Beispiel #1
0
 private static MappingSchema GetMappingSchema(DB2Version version)
 {
     return(version switch
     {
         DB2Version.zOS => new DB2MappingSchema.DB2zOSMappingSchema(),
         _ => new DB2MappingSchema.DB2LUWMappingSchema(),
     });
Beispiel #2
0
 private static MappingSchema GetMappingSchema(DB2Version version, MappingSchema providerSchema)
 {
     return(version switch
     {
         DB2Version.zOS => new DB2zOSMappingSchema(providerSchema),
         _ => new DB2LUWMappingSchema(providerSchema),
     });
Beispiel #3
0
        public static DataConnection CreateDataConnection(IDbConnection connection, DB2Version version = DB2Version.LUW)
        {
            switch (version)
            {
            case DB2Version.zOS: return(new DataConnection(_db2DataProviderzOS, connection));
            }

            return(new DataConnection(_db2DataProviderLUW, connection));
        }
Beispiel #4
0
        public static IDataProvider GetDataProvider(DB2Version version = DB2Version.LUW)
        {
            switch (version)
            {
            case DB2Version.zOS: return(_db2DataProviderzOS);
            }

            return(_db2DataProviderLUW);
        }
Beispiel #5
0
        public static IDataProvider GetDataProvider(DB2Version version = DB2Version.LUW)
        {
            if (version == DB2Version.zOS)
            {
                return(_db2DataProviderzOS.Value);
            }

            return(_db2DataProviderLUW.Value);
        }
Beispiel #6
0
        public static IDataProvider GetDataProvider(DB2Version version = DB2Version.LUW)
        {
            switch (version)
            {
                case DB2Version.zOS : return _db2DataProviderzOS;
            }

            return _db2DataProviderLUW;
        }
Beispiel #7
0
        public static DataConnection CreateDataConnection(IDbTransaction transaction, DB2Version version = DB2Version.LUW)
        {
            switch (version)
            {
                case DB2Version.zOS : return new DataConnection(_db2DataProviderzOS, transaction);
            }

            return new DataConnection(_db2DataProviderLUW, transaction);
        }
Beispiel #8
0
        public static DataConnection CreateDataConnection(string connectionString, DB2Version version = DB2Version.LUW)
        {
            switch (version)
            {
                case DB2Version.zOS : return new DataConnection(_db2DataProviderzOS, connectionString);
            }

            return new DataConnection(_db2DataProviderLUW, connectionString);
        }
Beispiel #9
0
        private static MappingSchema GetMappingSchema(DB2Version version, MappingSchema providerSchema)
        {
            switch (version)
            {
            case DB2Version.zOS: return(new DB2zOSMappingSchema(providerSchema));

            default:
            case DB2Version.LUW: return(new DB2LUWMappingSchema(providerSchema));
            }
        }
Beispiel #10
0
        public DB2DataProvider(string name, DB2Version version)
            : base(name, null)
        {
            Version = version;

            SqlProviderFlags.AcceptsTakeAsParameter       = false;
            SqlProviderFlags.AcceptsTakeAsParameterIfSkip = true;
            SqlProviderFlags.IsDistinctOrderBySupported   = version != DB2Version.zOS;

            SetCharField("CHAR", (r, i) => r.GetString(i).TrimEnd(' '));

            _sqlOptimizer = new DB2SqlOptimizer(SqlProviderFlags);
        }
Beispiel #11
0
        public DB2DataProvider(string name, DB2Version version)
            : base(name, null)
        {
            Version = version;

            SqlProviderFlags.AcceptsTakeAsParameter            = false;
            SqlProviderFlags.AcceptsTakeAsParameterIfSkip      = true;
            SqlProviderFlags.IsDistinctOrderBySupported        = false;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;

            SetCharFieldToType <char>("CHAR", (r, i) => DataTools.GetChar(r, i));

            SetCharField("CHAR", (r, i) => r.GetString(i).TrimEnd(' '));

            _sqlOptimizer = new DB2SqlOptimizer(SqlProviderFlags);
        }
Beispiel #12
0
        public DB2DataProvider(string name, DB2Version version)
            : base(
                name,
                GetMappingSchema(version, DB2ProviderAdapter.GetInstance().MappingSchema),
                DB2ProviderAdapter.GetInstance())

        {
            Version = version;

            SqlProviderFlags.AcceptsTakeAsParameter            = false;
            SqlProviderFlags.AcceptsTakeAsParameterIfSkip      = true;
            SqlProviderFlags.IsDistinctOrderBySupported        = false;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;
            SqlProviderFlags.IsUpdateFromSupported             = false;

            SetCharFieldToType <char>("CHAR", (r, i) => DataTools.GetChar(r, i));
            SetCharField("CHAR", (r, i) => r.GetString(i).TrimEnd(' '));

            _sqlOptimizer = new DB2SqlOptimizer(SqlProviderFlags);

            SetProviderField(Adapter.DB2Int64Type, typeof(long), Adapter.GetDB2Int64ReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2Int32Type, typeof(int), Adapter.GetDB2Int32ReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2Int16Type, typeof(short), Adapter.GetDB2Int16ReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2DecimalType, typeof(decimal), Adapter.GetDB2DecimalReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2DecimalFloatType, typeof(decimal), Adapter.GetDB2DecimalFloatReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2RealType, typeof(float), Adapter.GetDB2RealReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2Real370Type, typeof(float), Adapter.GetDB2Real370ReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2DoubleType, typeof(double), Adapter.GetDB2DoubleReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2StringType, typeof(string), Adapter.GetDB2StringReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2ClobType, typeof(string), Adapter.GetDB2ClobReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2BinaryType, typeof(byte[]), Adapter.GetDB2BinaryReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2BlobType, typeof(byte[]), Adapter.GetDB2BlobReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2DateType, typeof(DateTime), Adapter.GetDB2DateReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2TimeType, typeof(TimeSpan), Adapter.GetDB2TimeReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2TimeStampType, typeof(DateTime), Adapter.GetDB2TimeStampReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2XmlType, typeof(string), Adapter.GetDB2XmlReaderMethod, dataReaderType: Adapter.DataReaderType);
            SetProviderField(Adapter.DB2RowIdType, typeof(byte[]), Adapter.GetDB2RowIdReaderMethod, dataReaderType: Adapter.DataReaderType);

            if (Adapter.DB2DateTimeType != null)
            {
                SetProviderField(Adapter.DB2DateTimeType, typeof(DateTime), Adapter.GetDB2DateTimeReaderMethod !, dataReaderType: Adapter.DataReaderType);
            }
        }
Beispiel #13
0
 /// <summary>
 /// Creates <see cref="DataConnection"/> object using provided transaction object.
 /// </summary>
 /// <param name="transaction">Transaction instance.</param>
 /// <param name="version">DB2 version.</param>
 /// <returns><see cref="DataConnection"/> instance.</returns>
 public static DataConnection CreateDataConnection(IDbTransaction transaction, DB2Version version = DB2Version.LUW)
 {
     return(new DataConnection(GetDataProvider(version), transaction));
 }
Beispiel #14
0
 /// <summary>
 /// Creates <see cref="DataConnection"/> object using provided DB2 connection string.
 /// </summary>
 /// <param name="connectionString">Connection string.</param>
 /// <param name="version">DB2 version.</param>
 /// <returns><see cref="DataConnection"/> instance.</returns>
 public static DataConnection CreateDataConnection(string connectionString, DB2Version version = DB2Version.LUW)
 {
     return(new DataConnection(GetDataProvider(version), connectionString));
 }
Beispiel #15
0
 /// <summary>
 /// Creates <see cref="DataConnection"/> object using provided connection object.
 /// </summary>
 /// <param name="connection">Connection instance.</param>
 /// <param name="version">DB2 version.</param>
 /// <returns><see cref="DataConnection"/> instance.</returns>
 public static DataConnection CreateDataConnection(DbConnection connection, DB2Version version = DB2Version.LUW)
 {
     return(new DataConnection(GetDataProvider(version), connection));
 }
 /// <summary>
 /// Configure connection to use specific DB2 provider and connection string.
 /// </summary>
 /// <param name="builder">Instance of <see cref="LinqToDbConnectionOptionsBuilder"/>.</param>
 /// <param name="connectionString">DB2 connection string.</param>
 /// <param name="version">DB2 server version.</param>
 /// <returns>The builder instance so calls can be chained.</returns>
 public static LinqToDbConnectionOptionsBuilder UseDB2(this LinqToDbConnectionOptionsBuilder builder, string connectionString, DB2Version version)
 {
     return(builder.UseConnectionString(DB2Tools.GetDataProvider(version), connectionString));
 }