2009년 1월 28일 수요일

Prepared Statement의 패킷2

Prepare Header Packet
Prepare 명령을  올바르게 수신했다라는 신호로써 선두 1바이트는 0x00이 된다. 
statement ID라는 것은 Prepared statement오브젝트를 유일하게 식별하기 위한 번호이다. 
이후의 Prepared statement처리에는 클라이언트와 서버의 사이에 이 statement ID가 주고받게 되는 것이다. 

컬럼수는 실행하는 SQL문이 반환하는 컬럼 수를 말한다. 
이 값이 Field Packet의 수하고 일치하게 된다. 
이것은 Result Set Header Packet하고도 같다.  
갱신용의 경우 결과셋을 반환하지 않기 때문에 0(0x00)이 된다. 

PlaceHolder수는 SQL문중에 지정한 placeholder(「?」)의 수가 몇개있는지 나타내고 있다. 
이 수는 앞으로 이야기하게 될 Placeholder Packet의 수하고 일치한다. 

Prepare Header Packet
패킷헤더: 4바이트
OK통지: 1바이트 , 0x00고정
statement ID: 4바이트,  mysqld내부에 관리하고 있는 Prepared statement오브젝트를 유일하게 식별하기 위한 번호
컬럼수: 2바이트, 반환하는 컬럼수
placeholder수: 2바이트
filler: 1바이트, 0x00고정
경고수: 2바이트