我需要从某些特定的库中删除一些对象,这些特定的库是我在PowerBuilder中开发的实用程序找到的,但是没有简单的方法可以通过脚本删除对象。
有 ORCA ,我以前从未使用过,也不知道如何使用它。
我正在阅读 ORCA 指南,但是没有“ LibraryEntryDelet ”
的完整示例。我的实用程序向我返回了要传递给 LibraryEntryDelet 方法以删除对象的对象位置。
有人可以帮我提供 LibraryEntryDelet 的示例代码吗?
PB12.x
答案 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项目以获得更多说明。