internal static ObjectNameResolver[] GetSyntaxPatterns(AbstractDBConnection connection)
{
ArrayList collection = new ArrayList();
collection.Add(new ObjectNameResolver(NameOrder));
ObjectNameResolversCollection basic = (ObjectNameResolversCollection) ConfigurationSettings.GetConfig ("Mainsoft.Data.Configuration/objectnameresolution");
java.sql.DatabaseMetaData metaData = connection.JdbcConnection.getMetaData();
string productName = metaData.getDatabaseProductName();
foreach(ObjectNameResolver nameResolver in basic) {
if (productName.IndexOf(nameResolver.DbName) != -1) {
collection.Add(nameResolver);
}
}
//defaults
if (metaData.isCatalogAtStart()) {
collection.Add(new ObjectNameResolver(SchemaNameOrder));
collection.Add(new ObjectNameResolver(CatalogNameOrder));
collection.Add(new ObjectNameResolver(CatalogSchemaNameOrder));
collection.Add(new ObjectNameResolver(SchemaCatalogNameOrder));
}
else {
collection.Add(new ObjectNameResolver(CatalogNameOrder));
collection.Add(new ObjectNameResolver(SchemaNameOrder));
collection.Add(new ObjectNameResolver(SchemaCatalogNameOrder));
collection.Add(new ObjectNameResolver(CatalogSchemaNameOrder));
}
return (ObjectNameResolver[])collection.ToArray(typeof(ObjectNameResolver));
}
}