2010-10-27 35 views
0

我在窗體上的按鈕中獲得了以下代碼,但我想獲取已保存對象的OID或ID值,以便可以加載它直接在後面。從InterSystems Cache中通過Delphi中的ActiveX獲取對象的OID或ID

procedure TFormMain.ButtonNewClick(Sender: TObject); 
var 
    Employee: Variant; 
    OId: Variant; 
begin 
    Employee := Factory.New('Sample.Employee', True); 
    if VarIsNull(Employee) or VarIsClear(Employee) then 
    begin 
    ShowMessage('Could not create Employee!'); 
    Exit; 
    end; 

    Employee.Name := 'Foo Bar'; 
    Employee.SSN := '616-27-7814'; 

    Employee.Sys_Save; 

    OId := Employee.Sys_getOID; <- This doesn't exist 

    Employee.Sys_Close; 
    Employee := NULL; 
end; 

的機制的文檔顯示像GETID功能,但它們需要你的OID通過,但我沒有看到一個功能,只是.OID等不工作,因爲我有感覺所有的教程都顯示了通過OID或ID加載的例子,我錯過了一些非常基本的東西。

任何指針都會非常有幫助。

感謝, 布魯斯

回答

1

您試過Employee.OidEmployee.Sys_Oid

+0

我以爲我曾嘗試Sys_OID,它的工作原理,但OID和Sys_GetOID不工作,這是我以前的嘗試。我希望文檔更好,但非常感謝。 – Bruce 2010-10-29 02:51:21

+0

該文檔實際上比它看起來更好。轉到http://docs.intersystems.com/cache20091/csp/documatic/%25CSP.Documatic.cls並查看%Library包和Persistent對象。我想你只需在Sys_上加上前面提到的成員就可以從Delphi中調用它們。 – 2010-10-29 08:37:05

0

閱讀間Cache的ActiveX objects的文檔,我看不出有什麼辦法讓從Sample.Employee對象的OID。