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]; }
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]; }
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]; }
private void lboxCollections_SelectedIndexChanged(object sender, EventArgs e) { try { this.chkColumns.Items.Clear(); string collectionName = this.lboxCollections.SelectedItem.ToString(); this.esColumnCollection = helper.GetColumns(this.collections[collectionName]); foreach (esColumnMetadata col in this.esColumnCollection) { this.chkColumns.Items.Add(col.PropertyName); } for (int i = 0; i < this.chkColumns.Items.Count; i++) { this.chkColumns.SetItemChecked(i, true); } } catch { } }
private void bntOk_Click(object sender, EventArgs e) { try { if (this.lboxCollections.SelectedIndex > -1) { this.esCollectionName = this.lboxCollections.SelectedItem.ToString(); this.esColumnCollection = helper.GetColumns(this.collections[this.esCollectionName]); this.SelectedColumns = new List<string>(); foreach (string columnName in this.chkColumns.CheckedItems) { this.SelectedColumns.Add(columnName); } } } catch { } }
public esColumnMetadataCollection GetColumns(esEntityCollectionBase collection) { collection.EnableHierarchicalBinding = false; PropertyDescriptorCollection props = null; try { MethodInfo GetEntity = collection.GetType().GetMethod("CreateEntity", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); esEntity entity = GetEntity.Invoke(collection, null) as esEntity; MethodInfo GetProperties = collection.GetType().GetMethod("GetProperties", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); props = GetProperties.Invoke(collection, new object[] { entity }) as PropertyDescriptorCollection; } catch { } MethodInfo get_Meta = collection.GetType().GetMethod("get_Meta", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); IMetadata meta = get_Meta.Invoke(collection, null) as IMetadata; esColumnMetadataCollection esColumns = meta.Columns; esColumnMetadataCollection esCollection = new esColumnMetadataCollection(); try { foreach (esColumnMetadata col in esColumns) { esCollection.Add(col); } } catch { } try { if (props != null) { esExtendedPropertyAttribute att = new esExtendedPropertyAttribute(); foreach (PropertyDescriptor prop in props) { if (esColumns.FindByPropertyName(prop.Name) == null) { if (prop.Attributes.Contains(att)) { esColumnMetadata col = new esColumnMetadata(prop.Name, 1000, prop.PropertyType); col.PropertyName = prop.Name; esCollection.Add(col); } } } } } catch { } return esCollection; }