Пример #1
0
        static public Dictionary <string, MySqlParameter> GetParameters(Guid dataID,
                                                                        esProviderSpecificMetadata providerMetadata, esColumnMetadataCollection columns)
        {
            lock (parameterCache)
            {
                if (!parameterCache.ContainsKey(dataID))
                {
                    // The Parameters for this Table haven't been cached yet, this is a one time operation
                    Dictionary <string, MySqlParameter> types = new Dictionary <string, MySqlParameter>();

                    MySqlParameter param1;
                    foreach (esColumnMetadata col in columns)
                    {
                        esTypeMap typeMap = providerMetadata.GetTypeMap(col.PropertyName);
                        if (typeMap != null)
                        {
                            string      nativeType = typeMap.NativeType;
                            MySqlDbType dbType     = Cache.NativeTypeToDbType(nativeType);

                            param1 = new MySqlParameter(Delimiters.Param + col.PropertyName, dbType, 0, col.Name);
                            param1.SourceColumn = col.Name;

                            switch (dbType)
                            {
                            case MySqlDbType.Decimal:
                            case MySqlDbType.NewDecimal:
                            case MySqlDbType.Double:
                            case MySqlDbType.Float:
                            case MySqlDbType.Int16:
                            case MySqlDbType.Int24:
                            case MySqlDbType.Int32:
                            case MySqlDbType.Int64:
                            case MySqlDbType.UInt16:
                            case MySqlDbType.UInt24:
                            case MySqlDbType.UInt32:
                            case MySqlDbType.UInt64:

                                param1.Size      = (int)col.CharacterMaxLength;
                                param1.Precision = (byte)col.NumericPrecision;
                                param1.Scale     = (byte)col.NumericScale;
                                break;

                            case MySqlDbType.String:
                            case MySqlDbType.VarString:
                            case MySqlDbType.VarChar:
                                param1.Size = (int)col.CharacterMaxLength;
                                break;
                            }
                            types[col.Name] = param1;
                        }
                    }

                    parameterCache[dataID] = types;
                }
            }

            return(parameterCache[dataID]);
        }
Пример #2
0
        static public Dictionary <string, SqlCeParameter> GetParameters(Guid dataID,
                                                                        esProviderSpecificMetadata providerMetadata, esColumnMetadataCollection columns)
        {
            lock (parameterCache)
            {
                if (!parameterCache.ContainsKey(dataID))
                {
                    // The Parameters for this Table haven't been cached yet, this is a one time operation
                    Dictionary <string, SqlCeParameter> types = new Dictionary <string, SqlCeParameter>();

                    SqlCeParameter param1;
                    foreach (esColumnMetadata col in columns)
                    {
                        esTypeMap typeMap = providerMetadata.GetTypeMap(col.PropertyName);
                        if (typeMap != null)
                        {
                            string    nativeType = typeMap.NativeType;
                            SqlDbType dbType     = Cache.NativeTypeToDbType(nativeType);

                            param1 = new SqlCeParameter(Delimiters.Param + col.PropertyName, dbType, 0, col.Name);
                            param1.SourceColumn = col.Name;

                            switch (dbType)
                            {
                            case SqlDbType.Decimal:

                                param1.Precision = (byte)col.NumericPrecision;
                                param1.Scale     = (byte)col.NumericScale;
                                break;

                            case SqlDbType.DateTime:

                                param1.Precision = 23;
                                param1.Scale     = 3;
                                break;

                            case SqlDbType.SmallDateTime:

                                param1.Precision = 16;
                                break;
                            }
                            types[col.Name] = param1;
                        }
                    }

                    parameterCache[dataID] = types;
                }
            }

            return(parameterCache[dataID]);
        }
Пример #3
0
        public void WriteMetadata()
        {
            esProviderSpecificMetadata spec = this.Meta.GetProviderMetadata("esDefault");

            foreach (esColumnMetadata col in this.Meta.Columns)
            {
                Console.WriteLine("PropertyName: " + col.PropertyName);
                Console.WriteLine("ColumnName : " + col.Name);
                Console.WriteLine("CharLength : " + col.CharacterMaxLength.ToString());

                esTypeMap map = spec.GetTypeMap(col.Name);

                Console.WriteLine("Native Type : " + map.NativeType);
                Console.WriteLine("System Type : " + map.SystemType);
                Console.WriteLine("---------------------------------");
            }
        }
Пример #4
0
        static public Dictionary <string, VistaDBParameter> GetParameters(Guid dataID,
                                                                          esProviderSpecificMetadata providerMetadata, esColumnMetadataCollection columns)
        {
            lock (parameterCache)
            {
                if (!parameterCache.ContainsKey(dataID))
                {
                    // The Parameters for this Table haven't been cached yet, this is a one time operation
                    Dictionary <string, VistaDBParameter> types = new Dictionary <string, VistaDBParameter>();

                    VistaDBParameter param1;
                    foreach (esColumnMetadata col in columns)
                    {
                        esTypeMap typeMap = providerMetadata.GetTypeMap(col.PropertyName);
                        if (typeMap != null)
                        {
                            string      nativeType = typeMap.NativeType;
                            VistaDBType dbType     = Cache.NativeTypeToDbType(nativeType);

                            param1 = new VistaDBParameter(Delimiters.Param + col.PropertyName, dbType, 0, col.Name);
                            param1.SourceColumn = col.Name;

                            switch (dbType)
                            {
                            case VistaDBType.BigInt:
                            case VistaDBType.Int:
                            case VistaDBType.SmallInt:
                            case VistaDBType.Decimal:
                            case VistaDBType.Float:
                            case VistaDBType.Money:
                            case VistaDBType.SmallMoney:

                                param1.Size = (int)col.CharacterMaxLength;
                                break;
                            }
                            types[col.Name] = param1;
                        }
                    }

                    parameterCache[dataID] = types;
                }
            }

            return(parameterCache[dataID]);
        }
Пример #5
0
        static public Dictionary <string, EfzParameter> GetParameters(Guid dataID,
                                                                      esProviderSpecificMetadata providerMetadata, esColumnMetadataCollection columns)
        {
            lock (parameterCache)
            {
                if (!parameterCache.ContainsKey(dataID))
                {
                    // The Parameters for this Table haven't been cached yet, this is a one time operation
                    Dictionary <string, EfzParameter> types = new Dictionary <string, EfzParameter>();

                    EfzParameter param1;
                    foreach (esColumnMetadata col in columns)
                    {
                        esTypeMap typeMap = providerMetadata.GetTypeMap(col.PropertyName);
                        if (typeMap != null)
                        {
                            string  nativeType = typeMap.NativeType;
                            EfzType dbType     = Cache.NativeTypeToDbType(nativeType);

                            param1 = new EfzParameter(Delimiters.Param + col.PropertyName, dbType, col.PropertyName);
                            param1.SourceColumn = col.Name;

                            switch (dbType)
                            {
                                // TODO:
                                //case SqlDbType.BigInt:
                                //case SqlDbType.Decimal:
                                //case SqlDbType.Float:
                                //case SqlDbType.Int:
                                //case SqlDbType.Money:
                                //case SqlDbType.Real:
                                //case SqlDbType.SmallMoney:
                                //case SqlDbType.TinyInt:
                                //case SqlDbType.SmallInt:

                                //    param1.Size = (int)col.CharacterMaxLength;
                                //    param1.Precision = (byte)col.NumericPrecision;
                                //    param1.Scale = (byte)col.NumericScale;
                                //    break;

                                //case SqlDbType.DateTime:

                                //    param1.Precision = 23;
                                //    param1.Scale = 3;
                                //    break;

                                //case SqlDbType.SmallDateTime:

                                //    param1.Precision = 16;
                                //    break;

                                //case SqlDbType.Udt:

                                //    SetUdtTypeNameToAvoidMonoError(param1, typeMap);
                                //    break;
                            }
                            types[col.Name] = param1;
                        }
                    }

                    parameterCache[dataID] = types;
                }
            }

            return(parameterCache[dataID]);
        }
Пример #6
0
 static private void SetUdtTypeNameToAvoidMonoError(SqlParameter param, esTypeMap typeMap)
 {
     param.UdtTypeName = typeMap.NativeType;
 }