21.01.2022, 22:36 | #1 |
Участник
|
DMT Ax 2009 и мина замедленного действия
Всем привет.
Искал функцию по конвертации наименования (или идентификатора) таблицы Аксапты в наименование таблицы в СУБД и заметил особенность в реализации DMTTableUtils.getSQLName: X++: public static DMTName getSQLName(int tableId, DMTName _name) { SqlDictionary sqlDictionary; ; select firstOnly name from sqlDictionary where sqlDictionary.TabId == tableId && sqlDictionary.Name == _name; return SqlDictionary.name; } При этом, если наименование поля или таблицы превышает 30 символов, то в СУБД в названии будет присутствовать идентификатор. Очевидно: - DMT отработает некорректно; - Просится возврат поля SqlName. |
|
21.01.2022, 22:43 | #2 |
Боец
|
X++: Dictionary dictionary = new Dictionary(); DictTable dictTable; TableId tableId; ; do { tableId = dictionary.tableNext(tableId); if (tableId) { dictTable = new DictTable(tableId); info(dictTable.name(DbBackend::SQL)); } } while (tableid); |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (2). |
24.01.2022, 10:55 | #3 |
Участник
|
Что это за префикс такой DMT*
Это код не из стандартного приложения? |
|
24.01.2022, 11:05 | #4 |
Модератор
|
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
24.01.2022, 11:20 | #5 |
Moderator
|
Цитата:
|
|
24.01.2022, 13:28 | #6 |
NavAx
|
|
|
|
За это сообщение автора поблагодарили: fed (5), Vadik (1), sukhanchik (15). |
|
|