PowerBuilder: определение первичного ключа окна данных - PullRequest
3 голосов
/ 30 октября 2009

Я создаю некоторые события в базовом объекте (классе) в PowerBuilder, и потомки этого базового окна данных должны знать, что является первичным ключом этой таблицы (или строки). Как бы вы определили первичный ключ в коде?

Ответы [ 3 ]

3 голосов
/ 13 ноября 2009

Вы можете выполнять итерацию по списку столбцов окна данных и проверять свойство Key с помощью описания или точечной нотации:

<DW Control Name>.Describe("<Columnname>.Key")
or
<DW Control Name>.Object.<Columnname>.Key

Это позволяет узнать, включен ли столбец в выделенный список, который вы видите в окне рисования окна данных в пункте меню Строки-> Обновить свойства-> Уникальные ключевые столбцы:

Вот документы на это свойство:

http://infocenter.sybase.com/help/topic/com.sybase.dc37783_1150/html/dwref/CAIBHFGF.htm

1 голос
/ 30 октября 2009

Похоже, не существует ни одного свойства, которое вы можете получить с помощью точечной нотации или функции description, которая изолирует первичный ключ, по крайней мере, я его не видел. Я могу быть совершенно не прав, и есть лучший способ сделать это.

Но я думаю, что если вы пытаетесь сделать это в Powerscript, вам придется сканировать столбцы в окне данных и проверять свойство columnname.key для определения столбцов в ключе.

Полагаю, это также зависит от того, как вы определили столбцы первичного ключа в свойствах обновления окна данных; как правило, они не определены разработчиком для окон данных только для чтения.

Если у кого-то есть способ получше, пожалуйста, пишите.

0 голосов
/ 11 ноября 2009

Что там с вашими объектами или кодом, которые требуют, чтобы вы знали, что такое первичный ключ таблицы ?? Я использую Powerbuilder начиная с версии 2.0, и я не могу вспомнить ситуацию, когда мне нужно было бы знать.

...