Как удалить объект из библиотеки с помощью ORCA?

Мне нужно удалить некоторые объекты из некоторых конкретных библиотек, которые я нашел с помощью утилиты, разработанной в PowerBuilder, но нет простого способа удалить объекты с помощью скрипта.

Есть ORCA, которым я никогда раньше не пользовался и понятия не имею, как им пользоваться.

Я читаю РУКОВОДСТВО по ORCA, но полного примера «LibraryEntryDelet» нет.

Моя утилита возвращает мне местоположение объектов, которое я хочу передать методу LibraryEntryDelet для удаления объектов.

Может ли кто-нибудь помочь мне с образцом кода для LibraryEntryDelet?

PB12.x


person Shoki    schedule 20.06.2019    source источник


Ответы (1)


Я знаю, это старый вопрос, но, может быть, кто-нибудь его рассмотрит.

В 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 );
}

}

Функции ORCA в .NET обладают огромным потенциалом. Возможно, посмотрите проект PBDotNet на github для большей ясности.

person tony_370    schedule 25.04.2020