public DBColumnInfo(DBRelationInfo relation, string name, string typeName, string typeLength) { this.Relation = relation; this.Name = name; this.TypeName = typeName; this.TypeLength = typeLength; }
private static DBColumnInfo ColInfoFromName(dbOrigen source, string qualifiedName) { string[] names = qualifiedName.Split(new char[] { '.' }); string schemaName = string.Empty; string relationName = string.Empty; string columnName = string.Empty; switch (source) { case dbOrigen.PGSQL: //En PostgreSQL el esquema por defecto es 'public' schemaName = (names.Length > 2) ? names[0] : "public"; break; case dbOrigen.ORA: //En ORACLE el nombre debe ser completamente calificado //puesto que no existe el concepto de ESQUEMA como categoría. //En ORACLE ESQUEMA = NOMBRE_PROPIETARIO. Por tanto, si no //conocemos el nombre del propietario, la estructura DBColumnInfo //quedará incompleta. schemaName = (names.Length > 2) ? names[0] : string.Empty; break; } relationName = (names.Length > 2) ? names[1] : names[0]; columnName = (names.Length > 2) ? names[2] : names[1]; DBSchemaInfo schema = new DBSchemaInfo(source, schemaName); DBRelationInfo relation = new DBRelationInfo(schema, relationName, dbRelationType.Unknown); return(new DBColumnInfo(relation, columnName, string.Empty, string.Empty)); }
private static bool SchemaObjectExists(DBRelationInfo target) { bool e = false; Collection <Collection <DBRelationInfo> > candidates = new Collection <Collection <DBRelationInfo> >(); switch (target.Type) { case dbRelationType.Table: candidates.Add(QueryTableCatalog(target.Schema)); break; case dbRelationType.View: candidates.Add(QueryViewCatalog(target.Schema)); break; case dbRelationType.Unknown: candidates.Add(QueryTableCatalog(target.Schema)); candidates.Add(QueryViewCatalog(target.Schema)); break; } foreach (Collection <DBRelationInfo> list in candidates) { foreach (DBRelationInfo r in list) { if (r.Name.Trim().ToUpper() == target.Name.Trim().ToUpper()) { e = true; break; } } if (e) { break; } } return(e); }
public static Collection <DBColumnInfo> QueryColumnCatalog(DBRelationInfo relation) { string SQL = null; object[] aParams = null; switch (relation.Schema.Source) { case dbOrigen.ORA: SQL = AdministradorPreferencias.Read(PrefsBD.ORACustomColumnSchemaQuery); if (SQL == null || SQL.Trim() == string.Empty) { SQL = AdministradorPreferencias.Read(PrefsBD.ORADefaultColumnSchemaQuery); } aParams = new object[] { relation.Schema.Name.Trim(), relation.Name.Trim() }; break; case dbOrigen.PGSQL: SQL = AdministradorPreferencias.Read(PrefsBD.PGSQLCustomColumnSchemaQuery); if (SQL == null || SQL.Trim() == string.Empty) { SQL = AdministradorPreferencias.Read(PrefsBD.PGSQLDefaultColumnSchemaQuery); } aParams = new object[] { DBSettings.PGSQLDb, relation.Schema.Name.Trim(), relation.Name.Trim() }; break; } DataSet ds = GetDataSet(relation.Schema.Source, SQL, aParams); Collection <DBColumnInfo> columns = new Collection <DBColumnInfo>(); foreach (DataRow r in ds.Tables[0].Rows) { string length = (r[2] == System.DBNull.Value) ? string.Empty : r[2].ToString(); columns.Add(new DBColumnInfo(relation, (string)r[0], (string)r[1], length)); } return(columns); }