Требования к контексту многопоточного приложения

Ниже перечислены требования, предъявляемые к контексту потока:

  1. переменная sqlca должна объявляться как переменная типа auto отдельно для каждого потока. Для этого необходимо задать ее явно в претранслируемом модуле потока. Например:

     void __stdcall thread(void)
    {
    EXEC SQL MODULE M1;
    struct sqlca sqlca;
    . . .
    EXEC SQL END MODULE M1;
    } 
  2. переменные основного языка должны объявляться как переменные класса памяти auto для каждого потока. Если главные переменные объявляются как глобальные или переменные типа static, нужно внимательно следить за их использованием в разных потоках;

  3. использовать отдельный модуль встроенного SQL для каждого потока, т.к. в этом случае происходит создание локальных дескрипторов БД, заданных явно, и дескрипторов предложений встроенного языка;

  4. использовать явное задание соединения внутри каждого потока;

  5. все ссылки к курсору должны быть только внутри того же исходного модуля.