Pro C код для подключения к базе данных, что дает ошибку сегментации - PullRequest
0 голосов
/ 28 июня 2011

У меня есть следующий код в моем файле .pc, который вызывается почти 10 процессами, но для одного процесса он не работает, как показывает «Ошибка дампа ядра / сегментации». Это код, который вызывается каждым процессом как первый шаг для подключения к базе данных. Пожалуйста, предложите, где проблема в следующем коде -:

void DatabaseLogon (void)
{
   EXEC SQL BEGIN DECLARE SECTION;
      char *pchORALOG="";
   EXEC SQL END DECLARE SECTION;

   EXEC SQL WHENEVER SQLERROR DO SQLError();

   /* Save text of current SQL statement in the ORACA if an error occurs. */

   oraca.orastxtf = ORASTFERR;

   /* try to get the oracle login user/pass at the process level */
        if ( (pchORALOG=getenv("oralog")) == NULL )
        {
         printf("Error:Cannot Logon to database!\n");
         SQLError();
        }
      else
        {
         EXEC SQL CONNECT :pchORALOG;
        }
} /* End Of DatabaseLogon */

Спасибо Arpita

Ответы [ 2 ]

0 голосов
/ 28 сентября 2012

вы пытаетесь изменить местоположение только для чтения здесь.

pchORALOG=getenv("oralog")

ниже приведена проблема:

char *pchORALOG="";

измените его на:

char *pchORALOG;
0 голосов
/ 28 сентября 2012

Мой оператор ProC connect выглядит так:
EXEC SQL CONNECT: ИДЕНТИФИЦИРОВАНО пользователем: passwd ИСПОЛЬЗОВАНИЕ: база данных;

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