부록 C. 동적 SQL의 메소드 4 사용#
이 부록은 사용자가 프로그램 실행 시에 파라미터 마커의 값에 입력할 수 있는 동적 SQL의 메소드4를 사용할 시 참조한다.
SQLDA 구조체의 데이터 타입#
SQLDA 구조체는 동적SQL의 메소드4에서 사용된다. 이 구조체에서 데이터 타입을 정의하는 변수(short *T)에 대한 Internal 및 External데이터 타입을 설명한다.
SQLDA 구조체#
struct SQLDA
{
int       N;      /* 명령을 실행할 column의 개수 */
char      **V;      /* 데이터 주소 */
int       *L;      /* 각 데이터 buffer 길이 */
short     *T;      /* 각 데이터 type */ 
short     **I;      /* indicator 주소 */
int       F;     /* 분석된 column 개수 */
}
Internal 데이터 타입#
| DB DataType | Code | CLI type | 
|---|---|---|
| CHAR | 1 | SQL_CHAR | 
| VARCHAR | 12 | SQL_VARCHAR | 
| DECIMAL | 3 | SQL_DECIMAL | 
| NUMERIC | 2 | SQL_NUMERIC | 
| SMALLINT | 5 | SQL_SMALLINT | 
| INTEGER | 4 | SQL_INTEGER | 
| BIGINT | -5 | SQL_BIGINT | 
| REAL | 7 | SQL_REAL | 
| FLOAT | 6 | SQL_FLOAT | 
| DOUBLE | 8 | SQL_DOUBLE | 
External 데이터 타입#
| External DataType | Code | C DataType | 
|---|---|---|
| SQLDA_TYPE_CHAR | 1 | char, char[] | 
| SQLDA_TYPE_VARCHAR | 2 | char, char[] | 
| SQLDA_TYPE_SSHORT | 3 | short | 
| SQLDA_TYPE_SINT | 4 | int | 
| SQLDA_TYPE_SSHORTINT | 5 | short int | 
| SQLDA_TYPE_SINTSHORT | 6 | int short | 
| SQLDA_TYPE_SLONGINT | 7 | long int | 
| SQLDA_TYPE_SLONG | 8 | long | 
| SQLDA_TYPE_SLONGLONG | 9 | long long | 
| SQLDA_TYPE_SLONGLONGINT | 10 | long long int | 
| SQLDA_TYPE_DOUBLE | 11 | double | 
| SQLDA_TYPE_FLOAT | 12 | float | 
| SQLDA_TYPE_USHORT | 13 | unsigned short | 
| SQLDA_TYPE_UINT | 14 | unsigned int | 
| SQLDA_TYPE_USHORTINT | 15 | unsigned short int | 
| SQLDA_TYPE_UINTSHORT | 16 | unsigned int short | 
| SQLDA_TYPE_ULONGINT | 17 | unsigned long int | 
| SQLDA_TYPE_ULONG | 18 | unsigned long | 
| SQLDA_TYPE_ULONGLONG | 19 | unsigned long long | 
| SQLDA_TYPE_ULONGLONGINT | 20 | unsigned long long int | 
| SQLDA_TYPE_DATE | 21 | SQL_DATE_STRUCT | 
| SQLDA_TYPE_TIME | 22 | SQL_TIME_STRUCT | 
| SQLDA_TYPE_TIMESTAMP | 23 | SQL_TIMESTAMP_STRUCT |