예제 #1
0
        // tableFields
        public override List <schema_field> table_fields(string table, string nameField = "")
        {
            List <schema_field> result = new List <schema_field>();

            bool alreadyFindAutoNumber = false; int i = 0;

            foreach (DataRow row in schemaColumns(table, nameField).Rows)
            {
                System.Data.OleDb.OleDbType type = (System.Data.OleDb.OleDbType)Enum.Parse(typeof(System.Data.OleDb.OleDbType), row["DATA_TYPE"].ToString());
                bool autonumber = false;
                if (!alreadyFindAutoNumber)
                {
                    if (type == System.Data.OleDb.OleDbType.BigInt || type == System.Data.OleDb.OleDbType.Integer ||
                        type == System.Data.OleDb.OleDbType.SmallInt || type == System.Data.OleDb.OleDbType.TinyInt ||
                        type == System.Data.OleDb.OleDbType.UnsignedBigInt || type == System.Data.OleDb.OleDbType.UnsignedInt ||
                        type == System.Data.OleDb.OleDbType.UnsignedSmallInt || type == System.Data.OleDb.OleDbType.UnsignedTinyInt)
                    {
                        autonumber = isAutoIncrement(table, row["COLUMN_NAME"].ToString());
                    }
                    if (autonumber)
                    {
                        alreadyFindAutoNumber = true;
                    }
                }

                result.Add(new schema_field(_dbType, row["COLUMN_NAME"].ToString(), type.ToString(), row["IS_NULLABLE"].ToString().ToUpper() == "FALSE" ? false : true
                                            , row["CHARACTER_MAXIMUM_LENGTH"] != DBNull.Value ? int.Parse(row["CHARACTER_MAXIMUM_LENGTH"].ToString()) : (int?)null
                                            , row["NUMERIC_PRECISION"] != DBNull.Value ? int.Parse(row["NUMERIC_PRECISION"].ToString()) : (int?)null
                                            , row["NUMERIC_SCALE"] != DBNull.Value ? int.Parse(row["NUMERIC_SCALE"].ToString()) : (int?)null
                                            , row["COLUMN_DEFAULT"] != DBNull.Value ? row["COLUMN_DEFAULT"].ToString() : "", autonumber, false, i++));
            }

            return(result);
        }
예제 #2
0
 [EditorBrowsableAttribute(EditorBrowsableState.Advanced)]   // MDAC 69508
 public OleDbParameter(string parameterName,
                       OleDbType dbType, int size,
                       ParameterDirection direction,
                       Byte precision, Byte scale,
                       string sourceColumn, DataRowVersion sourceVersion, bool sourceColumnNullMapping,
                       object value) : this()   // V2.0 everything - round trip all browsable properties + precision/scale
 {
     ParameterName           = parameterName;
     OleDbType               = dbType;
     Size                    = size;
     Direction               = direction;
     PrecisionInternal       = precision;
     ScaleInternal           = scale;
     SourceColumn            = sourceColumn;
     SourceVersion           = sourceVersion;
     SourceColumnNullMapping = sourceColumnNullMapping;
     Value                   = value;
 }
예제 #3
0
 public OleDbParameter(string parameterName,
                       OleDbType dbType, int size,
                       ParameterDirection direction, bool isNullable,
                       byte precision, byte scale,
                       string srcColumn, DataRowVersion srcVersion,
                       object value) : this()
 { // V1.0 everything
     ParameterName     = parameterName;
     OleDbType         = dbType;
     Size              = size;
     Direction         = direction;
     IsNullable        = isNullable;
     PrecisionInternal = precision;
     ScaleInternal     = scale;
     SourceColumn      = srcColumn;
     SourceVersion     = srcVersion;
     Value             = value;
 }
예제 #4
0
    public System.Data.OleDb.OleDbType GetOleDbType(string strSystemType)
    {
        System.Data.OleDb.OleDbType dbType = System.Data.OleDb.OleDbType.VarChar;

        switch (strSystemType)
        {
        case "String":
            dbType = System.Data.OleDb.OleDbType.VarChar;
            break;

        case "Int64":
            dbType = System.Data.OleDb.OleDbType.Integer;
            break;

        case "Int32":
            dbType = System.Data.OleDb.OleDbType.Integer;
            break;

        case "DateTime":
            dbType = System.Data.OleDb.OleDbType.Date;
            break;

        case "Double":
            dbType = System.Data.OleDb.OleDbType.Double;
            break;

        case "Boolean":
            dbType = System.Data.OleDb.OleDbType.Boolean;
            break;

        case "Int16":
            dbType = System.Data.OleDb.OleDbType.Integer;
            break;

        case "Decimal":
            dbType = System.Data.OleDb.OleDbType.Decimal;
            break;
        }

        return(dbType);
    }
예제 #5
0
 public OleDbParameter(String parameterName,
                       OleDbType dbType,
                       int size,
                       ParameterDirection direction,
                       bool isNullable,
                       byte precision,
                       byte scale,
                       String sourceColumn,
                       DataRowVersion sourceVersion,
                       Object value)
 {
     ParameterName = parameterName;
     OleDbType     = dbType;
     Size          = size;
     Direction     = direction;
     IsNullable    = isNullable;
     Precision     = precision;
     Scale         = scale;
     SourceColumn  = sourceColumn;
     SourceVersion = sourceVersion;
     Value         = value;
 }
예제 #6
0
 public void ResetOleDbType()
 {
     oleDbType = GetOleDbType(Value);
     dbType    = OleDbTypeToDbType(oleDbType);
 }
예제 #7
0
 public OleDbParameter(string name, OleDbType dataType, int size) : this()
 {
     ParameterName = name;
     OleDbType     = dataType;
     Size          = size;
 }
예제 #8
0
 /// <include file='doc\OleDbParameter.uex' path='docs/doc[@for="OleDbParameter.OleDbParameter1"]/*' />
 public OleDbParameter(string name, OleDbType dataType)
 {
     this.ParameterName = name;
     this.OleDbType     = dataType;
 }
예제 #9
0
 internal static Exception UninitializedParameters(int index, OleDbType dbtype)
 {
     return(ADP.InvalidOperation(SR.Format(SR.OleDb_UninitializedParameters, index.ToString(CultureInfo.InvariantCulture), dbtype.ToString())));
 }
예제 #10
0
 public OleDbParameter(string name, OleDbType dataType, int size)
     : this(name, dataType)
 {
     this.size = size;
 }
예제 #11
0
 public OleDbParameter(String parameterName, OleDbType dbType, int size)
     : this(parameterName, dbType, size, ParameterDirection.Input,
            false, 0, 0, String.Empty, DataRowVersion.Current, null)
 {
 }
 public OleDbParameter Add(string parameterName, OleDbType oleDbType, int size, string sourceColumn)
 {
     return(Add(new OleDbParameter(parameterName, oleDbType, size, sourceColumn)));
 }
예제 #13
0
 /// <summary>
 /// 生成 ExOleDbParameter 实例
 /// </summary>
 /// <param name="paramemterName"></param>
 /// <param name="dbType"></param>
 public ExOleDbParameter(string paramemterName, System.Data.OleDb.OleDbType dbType)
 {
     _paramemterName = paramemterName;
     _dbType         = dbType;
 }
 internal static NativeDBType FromDataType(OleDbType enumOleDbType) =>
 enumOleDbType switch
 {
 public OleDbParameter Add(string parameterName, OleDbType oleDbType, int size)
 {
     return(Add(new OleDbParameter(parameterName, oleDbType, size)));
 }
예제 #16
0
 public void CommandParameterAdd(string strKey, System.Data.OleDb.OleDbType Type, int Size, string strValue)
 {
     ((System.Data.OleDb.OleDbParameter)comm.Parameters.Add(strKey, Type, Size)).Value = strValue;
 }
        internal static NativeDBType FromDataType(OleDbType enumOleDbType)
        {
            switch (enumOleDbType)
            {
            case OleDbType.Empty:
                return(D_Empty);

            case OleDbType.SmallInt:
                return(D_SmallInt);

            case OleDbType.Integer:
                return(D_Integer);

            case OleDbType.Single:
                return(D_Single);

            case OleDbType.Double:
                return(D_Double);

            case OleDbType.Currency:
                return(D_Currency);

            case OleDbType.Date:
                return(D_Date);

            case OleDbType.BSTR:
                return(D_BSTR);

            case OleDbType.IDispatch:
                return(D_IDispatch);

            case OleDbType.Error:
                return(D_Error);

            case OleDbType.Boolean:
                return(D_Boolean);

            case OleDbType.Variant:
                return(D_Variant);

            case OleDbType.IUnknown:
                return(D_IUnknown);

            case OleDbType.Decimal:
                return(D_Decimal);

            case OleDbType.TinyInt:
                return(D_TinyInt);

            case OleDbType.UnsignedTinyInt:
                return(D_UnsignedTinyInt);

            case OleDbType.UnsignedSmallInt:
                return(D_UnsignedSmallInt);

            case OleDbType.UnsignedInt:
                return(D_UnsignedInt);

            case OleDbType.BigInt:
                return(D_BigInt);

            case OleDbType.UnsignedBigInt:
                return(D_UnsignedBigInt);

            case OleDbType.Filetime:
                return(D_Filetime);

            case OleDbType.Binary:
                return(D_Binary);

            case OleDbType.Char:
                return(D_Char);

            case OleDbType.WChar:
                return(D_WChar);

            case OleDbType.Numeric:
                return(D_Numeric);

            case OleDbType.DBDate:
                return(D_DBDate);

            case OleDbType.DBTime:
                return(D_DBTime);

            case OleDbType.DBTimeStamp:
                return(D_DBTimeStamp);

            case OleDbType.PropVariant:
                return(D_PropVariant);

            case OleDbType.VarNumeric:
                return(D_VarNumeric);

            case OleDbType.Guid:
                return(D_Guid);

            case OleDbType.VarChar:
                return(D_VarChar);

            case OleDbType.LongVarChar:
                return(D_LongVarChar);

            case OleDbType.VarWChar:
                return(D_VarWChar);

            case OleDbType.LongVarWChar:
                return(D_LongVarWChar);

            case OleDbType.VarBinary:
                return(D_VarBinary);

            case OleDbType.LongVarBinary:
                return(D_LongVarBinary);
            }
            throw ODB.InvalidOleDbType(enumOleDbType);
        }
예제 #18
0
 /// <include file='doc\OleDbParameter.uex' path='docs/doc[@for="OleDbParameter.OleDbParameter2"]/*' />
 public OleDbParameter(string name, OleDbType dataType, int size)
 {
     this.ParameterName = name;
     this.OleDbType     = dataType;
     this.Size          = size;
 }
예제 #19
0
        private DbType OleDbTypeToDbType(OleDbType oleDbType)
        {
            switch (oleDbType)
            {
            case OleDbType.BigInt:
                return(DbType.Int64);

            case OleDbType.Binary:
                return(DbType.Binary);

            case OleDbType.Boolean:
                return(DbType.Boolean);

            case OleDbType.BSTR:
                return(DbType.AnsiString);

            case OleDbType.Char:
                return(DbType.AnsiStringFixedLength);

            case OleDbType.Currency:
                return(DbType.Currency);

            case OleDbType.Date:
                return(DbType.DateTime);

            case OleDbType.DBDate:
                return(DbType.DateTime);

            case OleDbType.DBTime:
                throw new NotImplementedException();

            case OleDbType.DBTimeStamp:
                return(DbType.DateTime);

            case OleDbType.Decimal:
                return(DbType.Decimal);

            case OleDbType.Double:
                return(DbType.Double);

            case OleDbType.Empty:
                throw new NotImplementedException();

            case OleDbType.Error:
                throw new NotImplementedException();

            case OleDbType.Filetime:
                return(DbType.DateTime);

            case OleDbType.Guid:
                return(DbType.Guid);

            case OleDbType.IDispatch:
                return(DbType.Object);

            case OleDbType.Integer:
                return(DbType.Int32);

            case OleDbType.IUnknown:
                return(DbType.Object);

            case OleDbType.LongVarBinary:
                return(DbType.Binary);

            case OleDbType.LongVarChar:
                return(DbType.AnsiString);

            case OleDbType.LongVarWChar:
                return(DbType.String);

            case OleDbType.Numeric:
                return(DbType.Decimal);

            case OleDbType.PropVariant:
                return(DbType.Object);

            case OleDbType.Single:
                return(DbType.Single);

            case OleDbType.SmallInt:
                return(DbType.Int16);

            case OleDbType.TinyInt:
                return(DbType.SByte);

            case OleDbType.UnsignedBigInt:
                return(DbType.UInt64);

            case OleDbType.UnsignedInt:
                return(DbType.UInt32);

            case OleDbType.UnsignedSmallInt:
                return(DbType.UInt16);

            case OleDbType.UnsignedTinyInt:
                return(DbType.Byte);

            case OleDbType.VarBinary:
                return(DbType.Binary);

            case OleDbType.VarChar:
                return(DbType.AnsiString);

            case OleDbType.Variant:
                return(DbType.Object);

            case OleDbType.VarNumeric:
                return(DbType.VarNumeric);

            case OleDbType.VarWChar:
                return(DbType.StringFixedLength);

            case OleDbType.WChar:
                return(DbType.String);
            }
            return(DbType.Object);
        }
예제 #20
0
        public OleDbParameter Add(string parameterName, OleDbType sqlDbType, int size, string sourceColumn)
        {
            OleDbParameter param = new OleDbParameter(parameterName, sqlDbType, size, sourceColumn);

            return(Add(param));
        }
예제 #21
0
 public OleDbParameter(string name, OleDbType dataType)
     : this()
 {
     this.name = name;
     OleDbType = dataType;
 }
예제 #22
0
        public OleDbParameter Add(string parameterName, OleDbType sqlDbType)
        {
            OleDbParameter param = new OleDbParameter(parameterName, sqlDbType);

            return(Add(param));
        }
예제 #23
0
 public OleDbParameter(string name, OleDbType dataType, int size, string srcColumn)
     : this(name, dataType, size)
 {
     this.sourceColumn = srcColumn;
 }
예제 #24
0
 public OleDbParameter(string?name, OleDbType dataType) : this()
 {
     ParameterName = name;
     OleDbType     = dataType;
 }
예제 #25
0
 public OleDbParameter(String parameterName, OleDbType dbType, int size,
                       String sourceColumn)
     : this(parameterName, dbType, size, ParameterDirection.Input,
            false, 0, 0, sourceColumn, DataRowVersion.Current, null)
 {
 }
예제 #26
0
 public OleDbParameter Add(string name, OleDbType type)
 {
     return(Add(new OleDbParameter(name, type)));
 }
예제 #27
0
 // OleDbParameter
 internal static Exception InvalidOleDbType(OleDbType value)
 {
     return(ADP.InvalidEnumerationValue(typeof(OleDbType), (int)value));
 }
예제 #28
0
 public OleDbParameter Add(string name, OleDbType type, int width, string src_col)
 {
     return(Add(new OleDbParameter(name, type, width, src_col)));
 }
예제 #29
0
        static internal NativeDBType FromDataType(OleDbType enumOleDbType)
        {
            switch (enumOleDbType)
            {                    // @perfnote: Enum.IsDefined
            case OleDbType.Empty:
                return(D_Empty); //   0

            case OleDbType.SmallInt:
                return(D_SmallInt);            //   2

            case OleDbType.Integer:
                return(D_Integer);             //   3

            case OleDbType.Single:
                return(D_Single);              //   4

            case OleDbType.Double:
                return(D_Double);              //   5

            case OleDbType.Currency:
                return(D_Currency);            //   6

            case OleDbType.Date:
                return(D_Date);                //   7

            case OleDbType.BSTR:
                return(D_BSTR);                //   8

            case OleDbType.IDispatch:
                return(D_IDispatch);           //   9

            case OleDbType.Error:
                return(D_Error);               //  10

            case OleDbType.Boolean:
                return(D_Boolean);             //  11

            case OleDbType.Variant:
                return(D_Variant);             //  12

            case OleDbType.IUnknown:
                return(D_IUnknown);            //  13

            case OleDbType.Decimal:
                return(D_Decimal);             //  14

            case OleDbType.TinyInt:
                return(D_TinyInt);             //  16

            case OleDbType.UnsignedTinyInt:
                return(D_UnsignedTinyInt);     //  17

            case OleDbType.UnsignedSmallInt:
                return(D_UnsignedSmallInt);    //  18

            case OleDbType.UnsignedInt:
                return(D_UnsignedInt);         //  19

            case OleDbType.BigInt:
                return(D_BigInt);              //  20

            case OleDbType.UnsignedBigInt:
                return(D_UnsignedBigInt);      //  21

            case OleDbType.Filetime:
                return(D_Filetime);            //  64

            case OleDbType.Guid:
                return(D_Guid);                //  72

            case OleDbType.Binary:
                return(D_Binary);              // 128

            case OleDbType.Char:
                return(D_Char);                // 129

            case OleDbType.WChar:
                return(D_WChar);               // 130

            case OleDbType.Numeric:
                return(D_Numeric);             // 131

            case OleDbType.DBDate:
                return(D_DBDate);              // 133

            case OleDbType.DBTime:
                return(D_DBTime);              // 134

            case OleDbType.DBTimeStamp:
                return(D_DBTimeStamp);         // 135

            case OleDbType.PropVariant:
                return(D_PropVariant);         // 138

            case OleDbType.VarNumeric:
                return(D_VarNumeric);          // 139

            case OleDbType.VarChar:
                return(D_VarChar);             // 200

            case OleDbType.LongVarChar:
                return(D_LongVarChar);         // 201

            case OleDbType.VarWChar:
                return(D_VarWChar);            // 202: ORA-12704: character set mismatch

            case OleDbType.LongVarWChar:
                return(D_LongVarWChar);        // 203

            case OleDbType.VarBinary:
                return(D_VarBinary);           // 204

            case OleDbType.LongVarBinary:
                return(D_LongVarBinary);       // 205

            default:
                throw ODB.InvalidOleDbType(enumOleDbType);
            }
        }
예제 #30
0
        private DbType OleDBType2DBType(System.Data.OleDb.OleDbType oleDBType)
        {
            DbType dbType = DbType.Object;

            switch (oleDBType)
            {
            case System.Data.OleDb.OleDbType.BigInt:
                dbType = DbType.Int64;
                break;

            case System.Data.OleDb.OleDbType.Binary:
                dbType = DbType.Binary;
                break;

            case System.Data.OleDb.OleDbType.Boolean:
                dbType = DbType.Boolean;
                break;

            case System.Data.OleDb.OleDbType.BSTR:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.Char:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.Currency:
                dbType = DbType.Currency;
                break;

            case System.Data.OleDb.OleDbType.Date:
                dbType = DbType.Date;
                break;

            case System.Data.OleDb.OleDbType.DBDate:
                dbType = DbType.Date;
                break;

            case System.Data.OleDb.OleDbType.DBTime:
                dbType = DbType.Time;
                break;

            case System.Data.OleDb.OleDbType.DBTimeStamp:
                dbType = DbType.Date;
                break;

            case System.Data.OleDb.OleDbType.Decimal:
                dbType = DbType.Decimal;
                break;

            case System.Data.OleDb.OleDbType.Double:
                dbType = DbType.Double;
                break;

            case System.Data.OleDb.OleDbType.Empty:
                dbType = DbType.Object;
                break;

            case System.Data.OleDb.OleDbType.Error:
                dbType = DbType.Object;
                break;

            case System.Data.OleDb.OleDbType.Filetime:
                dbType = DbType.UInt64;
                break;

            case System.Data.OleDb.OleDbType.Guid:
                dbType = DbType.Guid;
                break;

            case System.Data.OleDb.OleDbType.IDispatch:
                dbType = DbType.Object;
                break;

            case System.Data.OleDb.OleDbType.Integer:
                dbType = DbType.Int64;
                break;

            case System.Data.OleDb.OleDbType.IUnknown:
                dbType = DbType.Object;
                break;

            case System.Data.OleDb.OleDbType.LongVarBinary:
                dbType = DbType.Binary;
                break;

            case System.Data.OleDb.OleDbType.LongVarChar:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.LongVarWChar:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.Numeric:
                dbType = DbType.VarNumeric;
                break;

            case System.Data.OleDb.OleDbType.PropVariant:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.Single:
                dbType = DbType.Double;
                break;

            case System.Data.OleDb.OleDbType.SmallInt:
                dbType = DbType.Int16;
                break;

            case System.Data.OleDb.OleDbType.TinyInt:
                dbType = DbType.Int16;
                break;

            case System.Data.OleDb.OleDbType.UnsignedBigInt:
                dbType = DbType.UInt64;
                break;

            case System.Data.OleDb.OleDbType.UnsignedInt:
                dbType = DbType.UInt64;
                break;

            case System.Data.OleDb.OleDbType.UnsignedSmallInt:
                dbType = DbType.UInt16;
                break;

            case System.Data.OleDb.OleDbType.UnsignedTinyInt:
                dbType = DbType.Byte;
                break;

            case System.Data.OleDb.OleDbType.VarBinary:
                dbType = DbType.Binary;
                break;

            case System.Data.OleDb.OleDbType.VarChar:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.Variant:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.VarNumeric:
                dbType = DbType.UInt64;
                break;

            case System.Data.OleDb.OleDbType.VarWChar:
                dbType = DbType.String;
                break;

            case System.Data.OleDb.OleDbType.WChar:
                dbType = DbType.String;
                break;
            }
            return(dbType);
        }