문제

우리가 많은 문서에서 알고 있듯이 호스트 배열의 세 번째 요소는 다음과 같습니다. SQLCA.SQLERRD 즉. sqlca.sqlerrd[2] 지금까지 SQL 문에서 처리한 누적 행 수를 포함합니다(Pro*C 기준).

누군가 다른 요소의 중요성을 알고 있습니까? [0],[1] 그리고 그것은 무엇을 의미하는가?

도움이 되었습니까?

해결책

오류 처리 설명서 , 그들은 아무 것도하지 않습니다. 그들은 미래의 사용을 위해 예약되어 있지만 실제로 활용할 것입니다. sqlerrdlong[6]로 선언되지만 [2][4] 만 사용하는 것으로 보이는 것처럼 보입니다. 후자는 사자 오류에 대한 SQL 문으로 오프셋됩니다.

[0], [1] 또는 [3]을 사용하지 않는 것이 흥미 롭습니다. 이전 버전에서 다른 것에 사용되었는지 궁금해합니다. 이 오래된 Informix 링크 [2][4]와 유사한 의미가 유사한 구조를 가지므로 다른 사람들을 위해 다른 사람들을 사용할 것으로 예상되는 것에 대한 힌트를 줄 수 있습니다. 그러나 무의미한 우연 일 수도 있습니다 ...

PostgreSQL은 동일한 구조를 갖는 것 같습니다 , db2 SQL Server 관련이있는 것이 있습니다. 그것은 의심스럽게 표준처럼 보이기 시작합니다 ... 오라클이 부분적으로 만 부착 한 것만으로는.

다른 팁

"Informix Guide to SQL"(1998년 2월)에서:

('첫 번째', '두 번째' 등모든 언어의 인덱스 배열이 0으로 시작하는 것은 아니기 때문입니다.)

첫 번째 - SELECT, UPDATE, INSERT 또는 DELETE 문에 대한 PREPARE 문이 성공한 후 또는 선택 커서가 열린 후 이 필드에는 영향을 받는 예상 행 수가 포함됩니다.

두 번째 - SQLCODE에 오류 코드가 포함된 경우 이 필드에는 0 또는 주요 오류의 원인을 설명하는 ISAM 오류 코드라고 하는 추가 오류 코드가 포함됩니다.단일 행의 삽입 작업이 성공한 후 이 필드에는 해당 행에 대해 생성된 SERIAL 값의 값이 포함됩니다.

세 번째 - 다중 행 삽입, 업데이트 또는 삭제 작업이 성공한 후 이 필드에는 처리된 행 수가 포함됩니다.오류로 끝나는 여러 행 삽입, 업데이트 또는 삭제 작업 후에 이 필드에는 오류가 감지되기 ​​전에 성공적으로 처리된 행 수가 포함됩니다.

네 번째 - SELECT, UPDATE, INSERT 또는 DELETE 문에 대한 PREPARE 문이 성공한 후 또는 선택 커서가 열린 후 이 필드에는 디스크 액세스 및 처리된 총 행의 예상 가중치 합계가 포함됩니다.

다섯 번째 - PREPARE, EXECUTE IMMEDIATE, DECLARE 또는 정적 SQL 문에서 구문 오류가 발생한 후 이 필드에는 오류가 감지된 문 텍스트의 오프셋이 포함됩니다.

여섯 번째 - 선택한 행을 성공적으로 가져오거나 삽입, 업데이트 또는 삭제 작업이 성공한 후 이 필드에는 처리된 마지막 행의 rowid(물리적 주소)가 포함됩니다.이 rowid 값이 데이터베이스 서버가 사용자에게 반환하는 행에 해당하는지 여부는 데이터베이스 서버가 쿼리를 처리하는 방법, 특히 SELECT 문에 대해 의존합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top