2009년 1월 28일 수요일

Prepared Statement의 패킷3

Placeholder Packet
Placeholder Packet에는 placeholder에 관한 정보가 들어있다. 
이 레이아웃은 현재에는 Field Packet하고 같은 구성으로 되어있다. 
그렇지만 아래와 같이 거의가 고정값으로 되어있다. 

Placeholder Packet
패킷헤더: 4바이트
카탈로그명: LCS(4바이트고정)    ex> 0x03 64 65 66("def") 고정
데이터베이스명: LCS(1바이트고정)  , 0x00고정
데이터베이스명: LCS(1바이트고정)  , 0x00고정
테이블명의 Alias:  LCS(1바이트 고정), 0x00고정
테이블명: LCS(1바이트고정), 0x00고정
컬럼명의 Alias: LCS(2바이트고정) ex>0x01  3f 고정
컬럼명: LCS(1바이트고정) , 0x00고정
 filler:1바이트, 0x0c고정
캐릭터셋번호: 2바이트, 0x3f 00고정
표시크기: 4바이트, 0x00 00 00 00 고정
데이터형: 1바이트, 0xfd고정
데이터형특성: 2바이트, 0x80 00(BINARY)고정
 Decimal형의 스케일: 1바이트, 0x00고정( Decimal형이어도 0x00고정)
 filler: 2바이트, 0x00 00고정

※Field Packet하고 기본적으로 같은 포맷

EOF Packet하고 FieldPacket의 구성은 보통 검색용 SQL문의 경우하고 같다. 
갱신용 SQL문의 경우에는 Placeholder Packet다음에 그냥 EOF Packet으로 끝난다.