2009년 2월 3일 화요일

Prepared Statement의 패킷5

PreparedStatement Row Data Packet
결과셋 1행에 대해 PreparedStatement Row Data Packet이 1패킷 반환되어진다. 
이 구성은 보통 검색용 SQL문 실행시의 Row Data Packet하고 같다. 
다만  내용구성이 약간 다르다. 

우선 반환되는 컬럼값의 표기가  보통의 검색용 SQL문에서는 모두 문자열표현이었지만 Prepared Statement의 경우에는 다르다. 

예를 들어 INTEGER형인 경우에는 4바이트, DATETIME형이면 8바이트의 고정크기이다. 
또 null 필드라는 영역도 새롭게 추가된다. 

PreparedStatement Row Data Packet
패킷헤더: 4바이트
OK: 1바이트, 0x00고정
null필드: (field count+9)/8 바이트, 나머지수는 절사.  값은 0x00고정
컬럼값(추출하는 컬럼수만큼 반복):  문자열형은 LCS표기, 정수형은 16진수표기 
ex> 01 00 00 00  03 61 62 63 07 d6 07 0c 1e 10 12 11
     ==> 첫번째 컬럼 : 01 00 00 00 , 1 , Integer
              두번째 컬럼: 03 61 62 63,  abc, 문자열
               세번째 컬럼: 07 d6 07 0c 1e 10 12 11,  2006년  12월 30일  16시 18분 17초