public SQLFormatter(ITable table) { _table = table; if (_table != null) { ISQLSyntax sqlSyntax = (ISQLSyntax)((IDataset)_table).Workspace; _isCaseSensitive = (sqlSyntax.GetDelimitedIdentifierCase() == true); _prefix = sqlSyntax.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_DelimitedIdentifierPrefix); _suffix = sqlSyntax.GetSpecialCharacter(esriSQLSpecialCharacters.esriSQL_DelimitedIdentifierSuffix); } }
private List <WorkspaceInfoViewModel> LoadWorkspaceInfosFromArcMap() { var result = new List <WorkspaceInfoViewModel>(); var workspaces = ArcmapUtils.EnumerateAllWorkspaces(Ioc.GetOrCreate <IApplication>()); foreach (IWorkspace workspace in workspaces) { WorkspaceInfoViewModel info = new WorkspaceInfoViewModel(); info.Path = workspace.PathName; info.Name = Path.GetFileNameWithoutExtension(info.Path); ISQLSyntax sqlSyntax = workspace as ISQLSyntax; if (sqlSyntax != null) { info.StringComparisonCaseSensitive = sqlSyntax.GetStringComparisonCase(); info.IdentifierCaseSensitive = sqlSyntax.GetIdentifierCase(); info.QuotedIdentifierCaseSensitive = sqlSyntax.GetDelimitedIdentifierCase(); info.InvalidCharactersForIdentifiers = sqlSyntax.GetInvalidCharacters(); foreach (var enumName in Enum.GetValues(typeof(esriSQLFunctionName))) { string enumValue = sqlSyntax.GetFunctionName((esriSQLFunctionName)enumName); if (string.IsNullOrEmpty(enumValue)) { enumValue = NotAvailable; } info.SqlFunctions.AddOrReplace(enumName.ToString(), enumValue); } info.SqlFunctions.Sort((x, y) => string.Compare(x.Key, y.Key, StringComparison.InvariantCultureIgnoreCase)); foreach (var enumName in Enum.GetValues(typeof(esriSQLSpecialCharacters))) { string enumValue = sqlSyntax.GetSpecialCharacter((esriSQLSpecialCharacters)enumName); if (string.IsNullOrEmpty(enumValue)) { enumValue = string.Empty; } info.SpecialCharacters.AddOrReplace(enumName.ToString(), enumValue); } info.SpecialCharacters.Sort((x, y) => string.Compare(x.Key, y.Key, StringComparison.InvariantCultureIgnoreCase)); foreach (string keyword in sqlSyntax.GetKeywords().Enumerate()) { info.ReservedWords.Add(keyword); } info.ReservedWords.Sort(StringComparer.InvariantCultureIgnoreCase); } result.Add(info); } return(result); }