콘텐츠로 이동

부록 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