如何使用ORCA从库中删除对象?

时间:2019-06-20 07:28:18

标签: powerbuilder orca

我需要从某些特定的库中删除一些对象,这些特定的库是我在PowerBuilder中开发的实用程序找到的,但是没有简单的方法可以通过脚本删除对象。

ORCA ,我以前从未使用过,也不知道如何使用它。

我正在阅读 ORCA 指南,但是没有“ LibraryEntryDelet

的完整示例。

我的实用程序向我返回了要传递给 LibraryEntryDelet 方法以删除对象的对象位置。

有人可以帮我提供 LibraryEntryDelet 的示例代码吗?

PB12.x

1 个答案:

答案 0 :(得分:0)

我知道,这是一个古老的问题,但也许有人对此感兴趣。

C#有一些启发;

public class Orca
{
// Orca Session
 [DllImport("pborc170.dll", EntryPoint = "PBORCA_SessionOpen", CharSet = CharSet.Unicode, SetLastError = true)]
        private static unsafe extern int PBORCA_SessionOpen170();

//Session close
   [DllImport("pborc170.dll", EntryPoint = "PBORCA_SessionClose", CharSet = CharSet.Unicode, SetLastError = true)]
        private static unsafe extern void PBORCA_SessionClose170(int hORCASession);

// Entry Delete
  [DllImport("pborc170.dll", EntryPoint = "PBORCA_LibraryEntryDelete", CharSet = CharSet.Unicode, SetLastError = true)]
        private static unsafe extern int PBORCA_LibraryEntryDelete170(int hORCASession, [MarshalAs(UnmanagedType.LPTStr)] string lpszLibName, [MarshalAs(UnmanagedType.LPTStr)] string lpszEntryName, PBORCA_TYPE otEntryType);

//set the entry type enums
 private enum PBORCA_ENTRY_TYPE
        {
            PBORCA_APPLICATION,
            PBORCA_DATAWINDOW,
            PBORCA_FUNCTION,
            PBORCA_MENU,
            PBORCA_QUERY,
            PBORCA_STRUCTURE,
            PBORCA_USEROBJECT,
            PBORCA_WINDOW,
            PBORCA_PIPELINE,
            PBORCA_PROJECT,
            PBORCA_PROXYOBJECT,
            PBORCA_BINARY
        }

public static void LibraryEntryDelete(string pbl= "blabla.pbl", string entry = "blablaDatawindow", PBORCA_ENTRY_TYPE entryType= PBORCA_ENTRY_TYPE.PBORCA_DATAWINDOW)
{

//Open Session
    int orcaSession = PBORCA_SessionOpen170();

//delete entry
       PBORCA_LibraryEntryDelete170(orcaSession, pbl, entry, entryType);

//close session
    PBORCA_SessionClose170(orcaSession );
}

}

.NET中的ORCA功能具有巨大的潜力。也许可以查看github上的PBDotNet项目以获得更多说明。