15.03.2005, 19:09 | #1 |
Участник
|
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings)
Привет, всем. У меня следующая проблема. Есть метод, используемый несколькими таблицами, в котором работу с данными этих таблиц осуществляю посредством использования Map. Все бы ничего, да возникла необходимость получения кода поля таблицы (для наложения ограничения, addRange). Использовать для этих целей Map не могу, поскольку, разумеется, вызов fieldNum(Map, Field1) вернет код поля именно Map, а он не обязан совпадать с кодом поля реальной таблицы, связанного с Field1. Хочется верить, что все же возможно, зная код таблицы и поле Мар добраться как-то до кода поля таблицы, связанного с полем Мар. Может, кто-то сталкивался уже с подобной задачей? Не хочется делать switch для каждой таблицы или еще как-то изворачиваться. Хочется, чтобы красивый код был и универсальный. И при добавлении новой таблицы в список использующих этот метод не приходилось дополнительно ничего кодировать...
|
|
15.03.2005, 19:32 | #2 |
Модератор
|
Сделай маппинг на TableId. Таким образом, ты всегда сможешь узнать, от какой таблицы то или иное поле.
С Уважением, Георгий. |
|
15.03.2005, 20:14 | #3 |
Moderator
|
Не, делать маппинг на TableId не нужно, свойство TableId переменной-мапа после присваивания будет указывать на id конкретной таблицы, а не мапа.
А проблемой этой я заморачивался год назад вот тут. Можно сделать как предлагает Сергей, других способов я не нашел, а от задачи этой отказался.
__________________
Андрей. |
|
16.03.2005, 10:37 | #4 |
Участник
|
Да, верно, код реальной таблицы из Мар я и так вижу, но вот дальше дело не идет. Единственное, что я смогла найти, метод primaryKeyField класса DictTable, с помощью которого могу добраться до кода поля, входящего в первичный ключ. Но мне не кажется это хорошим решением, скорее "подгоном" и извращением, к тому же мне нужно оперировать подобным образом еще с одним полем, не являющимся ни ключевым, ни уникальным... Самое обычное такое поле.
|
|
16.03.2005, 10:48 | #5 |
Участник
|
Почитала тему по ссылке, спасибо... Может, конечно, Мар и не предназначен для таких целей, но в моем случае это явно бы ничего не нарушило и было бы удобно и красиво. Жалко
|
|
16.03.2005, 11:16 | #6 |
----------------
|
А метод Global::fieldName2id(int tableid, str fieldname) Вам не поможет?
|
|