sysVar.sqlData

sysVar.sqlData는 구조화 레코드 sqlLib.sqlData에 정의된 것과 동일한 시스템 변수가 들어 있는 구조화 레코드입니다. 두 레코드의 변수는 프로그램이 관계형 데이터베이스에 액세스한 후 업데이트됩니다. 두 개의 레코드 사이의 차이는 다음과 같습니다.
  • sysVar.sqlData의 범위는 실행 코드(프로그램, 라이브러리, 서비스 또는 핸들러)가 있는 기본 파트로 제한됩니다. 예를 들어, programA가 programB를 호출하고 두 프로그램이 관계형 데이터베이스에 액세스하는 경우 각 프로그램에 sysVar.sqlData의 자체 사본이 있습니다. programA로 돌아간 후에는 programB에 설정된 값을 사용할 수 없습니다.
  • sqlLib.sqlData의 범위는 실행 단위에 있는 프로그램에 글로벌입니다. 예를 들어, programA가 programB를 호출하고 두 프로그램 모두 관계형 데이터베이스에 액세스하는 경우 programB의 마지막 관계형 데이터베이스 액세스에서 설정된 값을 programA로 돌아가는 즉시 다음 관계형 데이터베이스에 액세스할 때까지 programA에서 사용할 수 있습니다.

두 경우 모두 변수의 값은 세그먼트화된 전환에서 저장되지 않습니다.

레코드 구조는 sqlLib.sqlData(EGL 시스템 변수)의 내용을 참조하십시오.

EGL은 VisualAge® Generator 및 EGL 이전 릴리스와의 호환성을 위해 sysVar.sqlData를 유지보수합니다. 또한 SQL 정보의 범위를 단일프로그램으로 제한하려는 경우 또는 COBOL 생성을 사용 중인 경우에는 sysVar.sqlData를 사용하십시오.

EGL은 I4GL과의 호환성을 위해 sqlLib.sqlData를 유지보수합니다. 또한 Java™ 생성을 사용 중이고 라이브러리 함수를 사용하여 SQL 입출력(I/O)을 수행 중인 경우 호출 함수로 돌아간 후 라이브러리 함수의 SQL 결과를 확인하기 위해 sqlLib.sqlData를 사용할 수 있습니다.

세그먼트화된 전환의 값 저장 여부

NO

호환성

표 1. sqlData의 호환성 고려사항
플랫폼 문제
Java 생성 Java는 sqlcode, sqlstate, sqlerrd[2], sqlerrd[3], sqlwarn[2]만 설정합니다. Java에서는 sqlca 데이터 구조가 각 입출력(I/O) 조작에서 데이터베이스와 양방향으로 전달되지 않으므로 EGL은 설정할 수 있는 모든 필드를 설정합니다. 사용자는 다른 필드를 수정할 수 있지만 EGL Java에서 해당 필드를 사용하지 않습니다.