|
![]() |
#1 |
Участник
|
Принцип именования объектов БД (таблицы, поля, views) следующий. Если аксаптовское имя имеет длину менее 30 символов, то <имя объекта в БД> = <имя объекта в Аксапте>. Если более, то <имя объекта в БД> = strLeft(<имя объекта в Аксапте>, 25) + <id объекта>.
В случае с индексом к имени еще добавляется префикс "I_<id таблицы>", т.е. <имя индекса в БД> = strLeft("I_<id таблицы>" + <имя объекта в Аксапте>, 25) + <id объекта>. Проще всего узнать физическое имя объекта использовать соответствующие методы класса DictTable: name() - для имени таблицы fieldname() - для имени поля indexname() - для имени индекса Все эти методы могут возвращать как аксаптовское имя, так и физическое имя объекта в БД. В последнем случае им надо в качестве параметра передать DbBackend::SQL. Например, для индекса это можно сделать так: X++: new DictTable(tablenum(MyTable)).indexName(indexnum(MyTable, MyIndex), DbBackend::SQL); Последний раз редактировалось Peter Savintsev; 09.10.2007 в 16:20. |
|
|
За это сообщение автора поблагодарили: mazzy (5), dn (1). |
![]() |
#2 |
Участник
|
Всем большое спасибо.
Последний раз редактировалось dn; 09.10.2007 в 17:19. Причина: вопрос снят |
|
Теги |
наименование объектов бд, ax3.0 |
|
|