Получить информацию о коде завершения

Синтаксис

 
L_LONG GetError (
  L_CHAR  *,  /* буфер для имени модуля, в котором произошла ошибка */
  L_ULONG *,  /* длина буфера для имени модуля */
  L_CHAR  *,  /* буфер для текста кода завершения */
  L_ULONG *,  /* длина буфера для текста кода завершения */
  L_LONG  *,  /* буфер для кода завершения LinAPI */
  L_LONG  *,  /* буфер для кода завершения СУБД ЛИНТЕР */
  L_LONG  *); /* буфер для кода завершения ОС */  

Описание

Метод извлекает ошибку из буфера ошибок. Для аргументов метода с типом L_ULONG* требуется передать указатели на переменные, в которых хранятся размер буфера для получения имени модуля и размер буфера для получения текста сообщения соответственно. В эти же переменные метод запишет реальные размеры строк с именем модуля и текстом сообщения (в том случае, если буфер для строк окажется недостаточным, строки будут усечены).

Прототип LinAPI

Отсутствует.

Примеры

  1. Пример функции обработки кода завершения:

    static void processing_error(linConnection *pConnect,
                                 L_LONG         ret_cod,
                                 L_CHAR        *message)
    {
      L_CHAR  sModuleName[64], sErrorText[1024];
      L_ULONG ulModuleNameLen = sizeof(sModuleName),
              ulErrorTextLen = sizeof(sErrorText);
      L_LONG  lLinApi, lLinter, lSystem, lRet;
    
      printf("Return code = %ld (%s)\n", ret_cod, message);
      while (pConnect- >GetErrorsCount())
      {
        if ((lRet = pConnect- >GetError(sModuleName,
                                       &ulModuleNameLen,
                                       sErrorText,
                                       &ulErrorTextLen,
                                       &lLinApi,
                                       &lLinter,
                                       &lSystem)) == LINAPI_SUCCESS)
          printf("%s: '%s'\n", sModuleName, sErrorText);
        else
          printf("GetError returned code #%ld\n", lRet);
      }
    }
  2. Пример вызова функции обработки кода завершения:

    linConnection *pConnect = new linConnection;
    L_LONG         lRet;
    
    if ((lRet = pConnect- >Connect("SYSTEM", 0, "MANAGER8", 0, NULL, mAutocommit)) !=
     LINAPI_SUCCESS)
        processing_error(pConnect, lRet, "ERROR Connect");