SQLNativeSql
SQLNativeSql#
SQL 구문을 Altibase CLI 드라이버가 지원하는 문장으로 변환한다.
Unicode SQLNativeSqlW() 동작은 SQLNativeSql()와 동일하다.
구 문#
SQLRETURN SQLNativeSql (
SQLHDBC dbc,
SQLCHAR *InstatementText,
SQLINTEGER textLength,
SQLCHAR *OutStstementText,
SQLINTEGER bufferLength,
SQLINTEGER textLength);
인 자#
자료유형 | 인자 | 사용 | 설명 |
---|---|---|---|
SQLHDBC | dbc | 입력 | 접속 핸들 |
SQLCHAR * | InstatementText | 입력 | 변환하고자 하는 SQL 구문 |
SQLINTEGER | textLength | 입력 | InstatementText의 길이 |
SQLCHAR * | OutStstementText | 출력 | 변환된 SQL 구문을 받을 버퍼의 포인터 |
SQLINTEGER | bufferLength | 입력 | OutStstementText의 크기 |
SQLINTEGER | textLength | 출력 | OutStstementText에 저장된 크기 |
결괏값#
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR
설 명#
SQL 구문을 Altibase CLI 드라이버가 지원하는 문장으로 변환시켜준다. SQLNativeSql() 실행은 하지 않는다.
ALTIBASE는 다음과 같은 구문들을 지원한다.
-
{d, '1981-09-27'} → TO_DATE('1981-09-27', 'YYYY-MM-DD')
-
{t, '07:23:56'} → TO_DATE('07:23:56', 'HH:MI:SS')
-
{ts, '1981-09-27 07:23:56'} → TO_DATE('1981-09-27 07:23:56', 'YYYY-MM-DD HH:MI:SS')
-
{? = call PROC1(a, ?, c)} → EXECUTE ? := PROC1(a, ? ,c)
진 단#
SQLSTATE | 설명 | 부연설명 |
---|---|---|
HY000 | 일반 오류 | 명시적인 오류 발생 없음 |
HY001 | 메모리 할당 오류 | 명시된 핸들을 위한 메모리 할당에 실패 |
01004 | 자료가 잘림 | OutStstementText 버퍼의 크기가 반환될 데이터의 크기보다 작음 |
예 제#
SQLNativeSql( dbc,
(SQLCHAR*)"INSERT INTO T1 VALUES( {d '1981-09-27'} )",
SQL_NTS,
outText,
100,
&outTextLen);
- outText에 INSERT INTO T1 VALUES( TO_DATE('1981-09-27', 'YYYY-MM-DD'))가 저장된다.