SIGSEG Ошибка при вызове OCI_Initialize () - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь подключиться к ORACLE, используя OCILIB со следующими кодами. Однако я столкнулся с сообщением об ошибке «Программа получила сигнал SIGSEGV, Ошибка сегментации. Это может произойти в функции "OCI_Initialize ()", но я не знаю почему.

введите описание изображения здесь

#include "ocilib.h"
#include <conio.h>

/* Example on Microsoft platform */

static HANDLE evt;

void long_oracle_call(void *data)
{
    OCI_Statement *st  = OCI_StatementCreate((OCI_Connection *) data); 
    OCI_Resultset *rs;

    /* execute a query that takes a long time to process */

    OCI_ExecuteStmt(st, "select * from test");

    rs = OCI_GetResultset(st);

    while (OCI_FetchNext(rs))
    {
        printf("%i - %s", OCI_GetInt(rs, 1), OCI_GetString(rs, 2));
    }

    SetEvent(evt);
}


int main(void)
{
    OCI_Connection *cn;

    if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
        return EXIT_FAILURE;

    cn  = OCI_ConnectionCreate("localhost:1522/orcl", "user", "pass",      OCI_SESSION_DEFAULT);
    evt = CreateEvent(0, TRUE, FALSE, 0);

    _beginthread(long_oracle_call, 0, cn);

    if (WaitForSingleObject(evt, 10000) != WAIT_OBJECT_0)
    {
        OCI_Break(cn);
        Sleep(2000);
    }

    OCI_Cleanup();
    getch();

    return EXIT_SUCCESS;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...