我在PowerBuilder中的基础对象(类)中创建了一些事件,而这个基本数据窗口的后代需要知道该表(或行)的主键是什么。您如何确定代码中的主键?
答案 0 :(得分:3)
您可以遍历数据窗口的列列表,并使用describe或点表示法检查Key属性:
<DW Control Name>.Describe("<Columnname>.Key")
or
<DW Control Name>.Object.<Columnname>.Key
这可以让您知道该列是否包含在您在datawindow画家的菜单项Rows-&gt; Update Properties-&gt; Unique Key Columns下所看到的突出显示列表中:
以下是该属性的文档:
http://infocenter.sybase.com/help/topic/com.sybase.dc37783_1150/html/dwref/CAIBHFGF.htm
答案 1 :(得分:1)
似乎没有一个属性可以通过点表示法或隔离主键的describe函数来获取,至少我没有看到一个。我在这里完全错了,有更好的方法。
但我认为如果你想在Powerscript中尝试这样做,你将不得不扫描数据窗口中的列并检查“columnname.key”属性以确定密钥中的列。
我希望这还取决于您在datawindow update属性中定义了主键列;通常这些不是开发人员为只读数据窗口定义的。
如果有人有更好的方法,请发帖。
答案 2 :(得分:0)
您的对象或代码有什么要求您知道表的主键是什么?我从2.0版开始就一直在使用Powerbuilder,我无法回想起我需要知道的情况。