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; } }
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 }