コード例 #1
0
ファイル: file.cs プロジェクト: iLanceS/fastCSharp
        static file()
        {
            keyValue <encodingBom, bom>[] bomList = new keyValue <encodingBom, bom> [4];
            int count = 0;

            bomList[count++] = new keyValue <encodingBom, bom>(Encoding.Unicode, new bom {
                Bom = 0xfeffU, Length = 2
            });
            bomList[count++] = new keyValue <encodingBom, bom>(Encoding.BigEndianUnicode, new bom {
                Bom = 0xfffeU, Length = 2
            });
            bomList[count++] = new keyValue <encodingBom, bom>(Encoding.UTF8, new bom {
                Bom = 0xbfbbefU, Length = 3
            });
            bomList[count++] = new keyValue <encodingBom, bom>(Encoding.UTF32, new bom {
                Bom = 0xfeffU, Length = 4
            });
            boms = new uniqueDictionary <encodingBom, bom>(bomList, 4);

            DefaultBytesPerCluster = bytesPerCluster(fastCSharp.pub.ApplicationPath);
            if (DefaultBytesPerCluster == 0)
            {
                DefaultBytesPerCluster = 1 << 12;
            }
        }
コード例 #2
0
ファイル: sqlDbType.cs プロジェクト: iLanceS/fastCSharp
        unsafe static sqlDbType()
        {
            #region 数据类型集合
            sqlTypeNames = new string[fastCSharp.Enum.GetMaxValue <SqlDbType>(-1) + 1];
            sqlTypeNames[(int)SqlDbType.BigInt] = "BIGINT";
            //SqlTypeNames[(int)SqlDbType.Binary] = typeof(byte[]);
            sqlTypeNames[(int)SqlDbType.Bit]      = "BIT";
            sqlTypeNames[(int)SqlDbType.Char]     = "CHAR";
            sqlTypeNames[(int)SqlDbType.DateTime] = "DATETIME";
            sqlTypeNames[(int)SqlDbType.Decimal]  = "DECIMAL";
            sqlTypeNames[(int)SqlDbType.Float]    = "DOUBLE";
            //SqlTypeNames[(int)SqlDbType.Image] = typeof(byte[]);
            sqlTypeNames[(int)SqlDbType.Int]      = "INT";
            sqlTypeNames[(int)SqlDbType.Money]    = "DECIMAL";
            sqlTypeNames[(int)SqlDbType.NChar]    = "CHAR";
            sqlTypeNames[(int)SqlDbType.NText]    = "TEXT";
            sqlTypeNames[(int)SqlDbType.NVarChar] = "VARCHAR";
            sqlTypeNames[(int)SqlDbType.Real]     = "FLOAT";
            //SqlTypeNames[(int)SqlDbType.UniqueIdentifier] = typeof(Guid);
            sqlTypeNames[(int)SqlDbType.SmallDateTime] = "DATETIME";
            sqlTypeNames[(int)SqlDbType.SmallInt]      = "SMALLINT";
            sqlTypeNames[(int)SqlDbType.SmallMoney]    = "DECIMAL";
            sqlTypeNames[(int)SqlDbType.Text]          = "TEXT";
            //SqlTypeNames[(int)SqlDbType.Timestamp] = typeof(byte[]);
            sqlTypeNames[(int)SqlDbType.TinyInt] = "TINYINT UNSIGNED";
            //SqlTypeNames[(int)SqlDbType.VarBinary] = typeof(byte[]);
            sqlTypeNames[(int)SqlDbType.VarChar] = "VARCHAR";
            //SqlTypeNames[(int)SqlDbType.Variant] = typeof(object);
            #endregion

            #region 默认值集合
            defaultValues = new string[fastCSharp.Enum.GetMaxValue <SqlDbType>(0) + 1];
            defaultValues[(int)SqlDbType.BigInt]        = "0";
            defaultValues[(int)SqlDbType.Bit]           = "0";
            defaultValues[(int)SqlDbType.Char]          = "''";
            defaultValues[(int)SqlDbType.DateTime]      = "now()";
            defaultValues[(int)SqlDbType.Decimal]       = "0";
            defaultValues[(int)SqlDbType.Float]         = "0";
            defaultValues[(int)SqlDbType.Int]           = "0";
            defaultValues[(int)SqlDbType.Money]         = "0";
            defaultValues[(int)SqlDbType.NChar]         = "''";
            defaultValues[(int)SqlDbType.NText]         = "''";
            defaultValues[(int)SqlDbType.NVarChar]      = "''";
            defaultValues[(int)SqlDbType.Real]          = "0";
            defaultValues[(int)SqlDbType.SmallDateTime] = "now()";
            defaultValues[(int)SqlDbType.SmallInt]      = "0";
            defaultValues[(int)SqlDbType.SmallMoney]    = "0";
            defaultValues[(int)SqlDbType.Text]          = "''";
            defaultValues[(int)SqlDbType.TinyInt]       = "0";
            defaultValues[(int)SqlDbType.VarChar]       = "''";
            #endregion

            #region 数据类型集合唯一哈希
            subArray <keyValue <sqlTypeName, keyValue <SqlDbType, int> > > names = new subArray <keyValue <sqlTypeName, keyValue <SqlDbType, int> > >(12);
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"bigint", new keyValue <SqlDbType, int>(SqlDbType.BigInt, sizeof(long))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"bit", new keyValue <SqlDbType, int>(SqlDbType.Bit, sizeof(bool))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"char", new keyValue <SqlDbType, int>(SqlDbType.Char, sizeof(char))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"datetime", new keyValue <SqlDbType, int>(SqlDbType.DateTime, sizeof(DateTime))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"decimal", new keyValue <SqlDbType, int>(SqlDbType.Decimal, sizeof(decimal))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"double", new keyValue <SqlDbType, int>(SqlDbType.Float, sizeof(double))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"int", new keyValue <SqlDbType, int>(SqlDbType.Int, sizeof(int))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"text", new keyValue <SqlDbType, int>(SqlDbType.Text, int.MinValue)));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"varchar", new keyValue <SqlDbType, int>(SqlDbType.VarChar, int.MinValue)));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"float", new keyValue <SqlDbType, int>(SqlDbType.Real, sizeof(float))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"smallint", new keyValue <SqlDbType, int>(SqlDbType.SmallInt, sizeof(short))));
            names.UnsafeAdd(new keyValue <sqlTypeName, keyValue <SqlDbType, int> >((sqlTypeName)"tinyint", new keyValue <SqlDbType, int>(SqlDbType.TinyInt, sizeof(byte))));
            sqlTypes = new uniqueDictionary <sqlTypeName, keyValue <SqlDbType, int> >(names.array, 16);
            #endregion
        }