34.15. Informix호환성 모드#

ECPG소위에서 실행할 수 있습니다Informix 호환성 모드. 이 모드가 활성화되면 마치 마치처럼 행동하려고합니다.Informix프리 컴파일러Informixe/sql. 일반적으로 말하면 이것은 대신 달러 표시를 사용할 수 있습니다.Exec SQL내장 된 SQL 명령을 소개하기위한 원시 :

$ int j = 3;

note

사이에 공백이 없어야합니다$및 다음 전처리 지침, 즉포함, 정의, ifdef등. 그렇지 않으면, 사전 처리기는 토큰을 호스트 변수로 구문 분석합니다.

두 가지 호환성 모드가 있습니다.Informix, informix_se

이 호환성 모드를 사용하는 프로그램을 연결할 때libcompatECPG와 함께 배송됩니다.

이전에 설명 된 구문 설탕 외에도Informix호환성 모드는 데이터의 입력, 출력 및 변환에 대한 일부 기능뿐만 아니라 E/SQL에서 ECPG로 알려진 임베디드 SQL 문을 포장합니다.

Informix호환성 모드는 ECPG의 PGTYPESLIB 라이브러리에 밀접하게 연결되어 있습니다. pgtypeslib는 SQL 데이터 유형을 C 호스트 프로그램 내의 데이터 유형에 매핑하고 대부분의 추가 기능Informix호환성 모드를 사용하면 해당 C 호스트 프로그램 유형에서 작동 할 수 있습니다. 그러나 호환성의 범위는 제한되어 있습니다.Informix12477_12665Informix현재. 또한 일부 데이터 유형은 다릅니다.PostgreSQL의 DateTime 및 간격 유형은 예를 들어 범위에 대해 알지 못합니다연도 ~ 분따라서 ECPG에서도 지원하지 않을 것입니다.

34.15.1. 추가 유형#

오른쪽 트림 문자열 데이터를 저장하기위한 Informix- 특이 "문자열"의사 유형은 이제 사용하지 않고 Informix-Mode에서 지원됩니다.typedef. 실제로 Informix-Mode에서 ECPG는 포함 된 소스 파일을 처리하는 것을 거부합니다.typedef somegype String;

Exec SQL 시작 선언 섹션;

34.15.2. 추가/누락 된 임베디드 SQL 문#

닫기 데이터베이스 #

이 문장은 현재 연결을 닫습니다. 사실, 이것은 ECPG의 동의어입니다현재 연결 끊기:

$ 닫기 데이터베이스;                / * 현재 연결을 닫습니다 */
무료 cursor_name #

ECPG의 차이로 인해 Informix의 ESQL/C (즉, 순수한 문법 변환이며 어떤 단계가 기본 런 타임 라이브러리에 의존하는 단계)무료 cursor_nameECPG의 문. ECPG에서이기 때문입니다.커서 선언커서 이름에 사용하는 런타임 라이브러리로 함수 호출로 변환되지 않습니다. 이것은 ECPG 런타임 라이브러리에서 SQL 커서의 런타임 부기가 없음을 의미합니다.

12646_12665 #

12646_12665동의어입니다Deallocate 준비 명령문 _name.

34.15.3. 정보 호환 SQLDA 디스크립터 영역#

Informix 호환 모드에 설명 된 것과 다른 구조를 지원합니다섹션 34.7.2. 아래를 참조하십시오 :

struct sqlvar_compat

글로벌 속성은 다음과 같습니다.

SQLD #

의 필드 수SQLDA디스크립터.

sqlvar #

필드 당 특성에 대한 포인터.

desc_name #

사용하지 않고 제로 바이트로 채워져 있습니다.

desc_occ #

할당 된 구조의 크기.

desc_next #

결과 세트에 둘 이상의 레코드가 포함 된 경우 다음 SQLDA 구조에 대한 포인터.

예약 #

미사용 포인터, NULL이 포함되어 있습니다. 정보 호환성을 위해 보관합니다.

당사자 특성은 아래에 있으며에 저장됩니다.sqlvar배열 :

sqltype #

필드의 유형. 상수가sqltypes.h

sqllen #

필드 데이터의 길이.

sqldata #

필드 데이터에 대한 포인터. 포인터는char *타입, 이에 의해 지적 된 데이터는 이진 형식입니다. 예:

int intval;
sqlind #

널 표시기에 대한 포인터. 설명 또는 페치로 반환하면 항상 유효한 포인터입니다.실행 ... SQLDA 사용;그런 다음 Null-Pointer 값은이 필드의 값이 널이 없음을 의미합니다. 그렇지 않으면 유효한 포인터 및sqlitype올바르게 설정해야합니다. 예:

if ( *(int2 *) sqldata-> sqlvar [i] .sqlind! = 0)
sqlname #

필드 이름. 0- 종료 문자열.

sqlformat #

Informix에 예약, 값pqfformat필드 용.

sqlitype #

널 표시기 데이터의 유형. 서버에서 데이터를 반환 할 때 항상 SQLSMINT입니다.SQLDA매개 변수화 쿼리에 사용되며 데이터는 세트 유형에 따라 처리됩니다.

sqlilen #

널 표시기 데이터의 길이.

SQLXID #

필드의 확장 유형, 결과pqftype.

sqltypename
sqltypelen
SQLOWNERLEN
sqlsourcetype
sqlownername
SQLSOURCEID
sqlflags
sqlreserved #

미사용.

sqlilongdata #

sqldataifsqllen32KB보다 큽니다.

예 :

exec sql 포함 sqlda.h;

자세한 내용은을 참조하십시오.sqlda.h헤더 및src/interfaces/ecpg/test/compat_informix/sqlda.pgc회귀 테스트.

34.15.4. 추가 기능#

Decadd #

두 가지 소수점 유형 값 추가.

int decadd (Decimal *arg1, Decimal *arg2, Decimal *sum);

토토 사이트 십진수 유형의 첫 번째 피연산자에 대한 포인터를 수신합니다 (arg1), 유형의 두 번째 피연산자에 대한 포인터 (arg2) 및 sum ( 유형 10 진수 값에 대한 포인터Sum). 성공시 토토 사이트 0을 반환합니다.ecpg_informix_num_overflow오버플로의 경우 반환됩니다.ecpg_informix_num_underflow언더 플로우의 경우. -1은 다른 실패로 반환되고errno각각으로 설정되었습니다errnopgtypeslib의 수

deccmp #

유형의 두 가지 변수 비교.

int deccmp (Decimal *arg1, Decimal *arg2);

토토 사이트 첫 번째 소수점 값에 대한 포인터를 수신합니다 (arg1), 두 번째 소수점 값에 대한 포인터 (arg2) 그리고 어느 것이 더 큰 값인지를 나타내는 정수 값을 반환합니다.

  • 1, 값이라면arg1포인트가 값보다 큽니다var2포인트

  • -1, 값인 경우arg1포인트로 포인트 값보다 작습니다arg2포인트

  • 0, 값이라면arg1포인트 및 가치arg2포인트가 평등하다

Deccopy #

소수점 값 복사.

void deccopy (Decimal *Src, Decimal *Target);

이 토토 사이트 첫 번째 인수로 복사 해야하는 소수점 값에 대한 포인터를 수신합니다 (SRC) 및 유형 10 진수의 대상 구조에 대한 포인터 (대상) 두 번째 인수로.

deccvasc #

ASCII 표현에서 값을 소수점 유형으로 변환합니다.

int deccvasc (char *cp, int len, decimal *np);

함수는 변환 할 숫자의 문자열 표현을 포함하는 문자열에 대한 포인터를 수신합니다 (CP)와 길이Len. NP| 작전 결과를 절약하는 소수점 값에 대한 포인터입니다.

유효한 형식은 예를 들어 :-2, .794, +3.44, 592.49E07또는-32.84E-4.

함수는 성공시 0을 반환합니다. 오버플로 또는 언더 플로우가 발생한 경우ecpg_informix_num_overflow또는ecpg_informix_num_underflow반환됩니다. ASCII 표현을 구문 분석 할 수 없다면ecpg_informix_bad_numeric반환 또는ecpg_informix_bad_exponent지수를 구문 분석하는 동안이 문제가 발생한 경우

deccvdbl #

유형 값을 두 배의 값을 유형의 값으로 변환합니다.

int deccvdbl (Double DBl, Decimal *np);

이 토토 사이트 첫 번째 인수로 변환 해야하는 유형의 변수를 수신합니다 (DBL). 두 번째 인수로서 (NP),이 토토 사이트 작업 결과를 유지 해야하는 소수 변수에 대한 포인터를 수신합니다.

토토 사이트 성공시 0을 반환하고 변환이 실패한 경우 음수 값을 반환합니다.

deccvint #

int 유형 값을 유형의 값으로 변환합니다.

int deccvint (int in, decimal *np);

토토 사이트 첫 번째 인수로 변환 해야하는 유형 int의 변수를 수신합니다 (in). 두 번째 인수로서 (NP),이 토토 사이트 작업 결과를 유지 해야하는 소수 변수에 대한 포인터를 수신합니다.

토토 사이트 성공시 0을 반환하고 변환이 실패한 경우 음수 값을 반환합니다.

deccvlong #

유형의 값을 유형의 값으로 변환하십시오.

int deccvlong (Long lng, Decimal *np);

토토 사이트 첫 번째 인수로 변환 해야하는 유형의 변수를 수신합니다 (LNG). 두 번째 인수로서 (NP),이 토토 사이트 작업 결과를 유지 해야하는 소수 변수에 대한 포인터를 수신합니다.

토토 사이트 성공시 0을 반환하고 변환이 실패한 경우 음수 값을 반환합니다.

DECDIV #

십진제 유형의 두 변수를 나눕니다.

int decdiv (소수 *n1, 소수 *n2, 소수 *결과);

토토 사이트 첫 번째 ( 변수에 대한 포인터를받습니다.n1) 및 두 번째 (n2) 피연산자 및 계산n1/n2. 결과는 작업 결과를 유지 해야하는 변수에 대한 포인터입니다.

성공시, 부서가 실패하면 0이 반환되고 음수 값이 반환됩니다. 오버플로 또는 언더 플로가 발생하면 함수가 반환ecpg_informix_num_overflow또는ecpg_informix_num_underflow각각. 0으로 나누려는 시도가 관찰되면 함수가 반환ecpg_informix_divide_zero.

Decmul #

두 가지 소수점 값을 곱하십시오.

int decmul (10 진수 *n1, 소수 *n2, 소수 *결과);

토토 사이트 첫 번째 ( 변수에 대한 포인터를받습니다.n1) 및 두 번째 (n2) 피연산자 및 계산n1*n2. 결과는 작업 결과를 유지 해야하는 변수에 대한 포인터입니다.

성공시, 곱셈이 실패하면 0이 반환되고 음수 값이 반환됩니다. 오버플로 또는 언더 플로가 발생하면 함수가 반환ecpg_informix_num_overflow또는ecpg_informix_num_underflow각각.

DECSUB #

하나의 소수점 값을 다른 사람에게 빼십시오.

int decsub (소수 *n1, 소수 *n2, 소수 *결과);

토토 사이트 첫 번째 ( 변수에 대한 포인터를받습니다.n1) 및 두 번째 (n2) 피연산자 및 계산n1-n2. 결과는 작업 결과를 유지 해야하는 변수에 대한 포인터입니다.

성공시 0이 반환되고 뺄셈이 실패하면 음수 값이 반환됩니다. 오버플로 또는 언더 플로가 발생하면 함수가 반환ecpg_informix_num_overflow또는ecpg_informix_num_underflow각각.

dectoasc #

CHAR* 문자열에서 ASCII 표현으로 소수 유형 변수를 변환합니다.

int dectoasc (Decimal *np, char *cp, int len, int right)

이 토토 사이트 유형의 변수에 대한 포인터를 수신합니다 (NP) 텍스트 표현으로 변환됩니다.CP는 작업 결과를 유지 해야하는 버퍼입니다. 매개 변수오른쪽소수점의 오른쪽 오른쪽 오른쪽 수는 출력에 포함되어야합니다. 결과는이 소수점 자리로 반올림됩니다.오른쪽~ -1은 사용 가능한 모든 소수 자릿수가 출력에 포함되어야 함을 나타냅니다. 출력 버퍼의 길이 인 경우Len후행 제로 바이트를 포함하여 텍스트 표현을 보유하기에 충분하지 않습니다.*문자는 결과에 저장되고 -1이 반환됩니다.

토토 사이트 버퍼 인 경우 -1을 반환합니다CP너무 작거나ecpg_informix_out_of_memory메모리가 소진 된 경우.

dectodbl #

십진제 유형 변수를 이중으로 변환합니다.

int dectodbl (Decimal *np, double *dblp);

토토 사이트 변환 할 소수 값에 대한 포인터를 수신합니다 (NP) 및 작업 결과를 유지 해야하는 이중 변수에 대한 포인터 (DBLP).

성공시 0이 반환되고 변환이 실패하면 음수 값이 반환됩니다.

dectoint #

십진제 유형 변수를 정수로 변환합니다.

int dectoint (Decimal *np, int *ip);

토토 사이트 변환 할 소수 값에 대한 포인터를 수신합니다 (NP) 및 작업 결과를 유지 해야하는 정수 변수에 대한 포인터 (IP).

성공시, 변환이 실패하면 0이 반환되고 음수 값이 반환됩니다. 오버플로가 발생하면ecpg_informix_num_overflow반품.

ECPG 구현은와 다릅니다.Informix구현.Informix정수를 -32767에서 32767로 범위로 제한하는 반면 ECPG 구현의 한계는 아키텍처 (에 따라 다릅니다.int_min .. int_max).

dectolong #

소수점 유형 변수를 긴 정수로 변환합니다.

int dectolong (Decimal *np, long *lngp);

토토 사이트 변환 할 소수 값에 대한 포인터를 수신합니다 (NP) 및 작업 결과를 유지 해야하는 긴 변수에 대한 포인터 (LNGP).

성공시, 변환이 실패하면 0이 반환되고 음수 값이 반환됩니다. 오버플로가 발생하면ecpg_informix_num_overflow반품.

ECPG 구현은와 다릅니다.Informix구현.Informix긴 정수를 긴 정수를 -2,147,483,647에서 2,147,483,647로 제한하는 반면 ECPG 구현의 한계는 아키텍처에 따라 다릅니다 (.-long_max .. long_max).

rdatest #

날짜를 c char* 문자열로 변환합니다.

int rdatest (날짜 d, char *str);

토토 사이트 두 개의 인수를 받고, 첫 번째 인수는 convert (의 날짜입니다.d) 두 번째는 대상 문자열에 대한 포인터입니다. 출력 형식은 항상yyyy-mm-dd이므로 문자열에 대해 최소 11 바이트 (제로 바이트 터미네이터 포함)를 할당해야합니다.

토토 사이트 성공시 0을 반환하고 오류의 경우 음수 값을 반환합니다.

ECPG의 구현은와 다릅니다.Informix구현. 안에Informix형식은 환경 변수를 설정하여 영향을받을 수 있습니다. 그러나 ECPG에서는 출력 형식을 변경할 수 없습니다.

rstrdate #

날짜의 텍스트 표현을 구문 분석합니다.

int rstrdate (char *str, date *d);

토토 사이트 변환 날짜의 텍스트 표현을받습니다 (str) 및 유형의 변수에 대한 포인터 (d). 이 함수는 형식 마스크를 지정할 수 없습니다.Informixmm/dd/yyyy. 내부적 으로이 기능은를 통해 구현됩니다.rdefmtdate. 그러므로,rstrdate더 빠르지 않으며 선택이 있으면 선택해야합니다rdefmtdate이를 통해 형식 마스크를 명시 적으로 지정할 수 있습니다.

토토 사이트와 동일한 값을 반환합니다.rdefmtdate.

rtoday #

현재 날짜 받기.

void rtoday (날짜 *d);

토토 사이트 날짜 변수에 대한 포인터를 수신합니다 (d) 현재 날짜로 설정됩니다.

내부적 으로이 토토 사이트를 사용합니다.pgtypesdate_today기능.

rjulmdy #

유형 날짜 변수에서 하루, 달 및 연도의 값을 추출합니다.

int rjulmdy (날짜 d, 짧은 mdy [3]);

토토 사이트 날짜를받습니다d그리고 3 개의 짧은 정수 값 배열에 대한 포인터mdy. 변수 이름은 순차 순서를 나타냅니다.mdy [0]월 수를 포함하도록 설정됩니다.mdy [1]오늘의 가치로 설정되고mdy [2]연도가 포함됩니다.

함수는 현재 항상 0을 반환합니다.

내부적으로 토토 사이트를 사용합니다.pgtypesdate_julmdy기능.

rdefmtdate #

형식 마스크를 사용하여 문자열을 유형 날짜 값으로 변환합니다.

int rdefmtdate (날짜 *d, char *fmt, char *str);

함수는 작동 결과를 유지 해야하는 날짜 값에 대한 포인터를 수신합니다 (d), 날짜를 구문 분석하는 데 사용할 형식 마스크 (FMT) 및 날짜 (의 텍스트 표현을 포함하는 C char* 문자열str). 텍스트 표현은 형식 마스크와 일치 할 것으로 예상됩니다.yy또는yyyy올해의 위치를 ​​나타내는mm달의 위치를 ​​나타내는 것과DD오늘의 위치를 ​​표시합니다.

함수는 다음 값을 반환합니다.

  • 0- 함수가 성공적으로 종료되었습니다.

  • ECPG_INFORMIX_ENOSHORTDATE- 날짜에는 일, 월 및 연도 사이에 구분 기가 포함되어 있지 않습니다. 이 경우 입력 문자열의 길이는 정확히 6 또는 8 바이트이어야하지만 그렇지 않습니다.

  • ecpg_informix_enotdmy- 형식 문자열은 연도, 월 및 일의 순차 순서를 올바르게 나타내지 않았습니다.

  • ecpg_informix_bad_day- 입력 문자열에는 유효한 날이 포함되어 있지 않습니다.

  • ecpg_informix_bad_month- 입력 문자열에는 유효한 달이 포함되어 있지 않습니다.

  • ecpg_informix_bad_year- 입력 문자열에는 유효한 연도가 포함되어 있지 않습니다.

내부적 으로이 토토 사이트를 사용하도록 구현됩니다.pgtypesdate_defmt_asc함수. 예제 입력 테이블에 대한 참조를 참조하십시오.

rfmtdate #

형식 마스크를 사용하여 유형 날짜 변수를 텍스트 표현으로 변환합니다.

int rfmtdate (날짜 d, char *fmt, char *str);

토토 사이트 변환 날짜를 수신합니다 (d), 형식 마스크 (FMT) 및 날짜 (의 텍스트 표현을 보유 할 문자열str).

성공시 0이 반환되고 오류가 발생하면 음수 값이 반환됩니다.

내부적 으로이 토토 사이트를 사용합니다.pgtypesdate_fmt_asc함수, 예제는 참조를 참조하십시오.

rmdyjul #

날짜, 달 및 날짜를 ​​지정하는 3 개의 짧은 정수 배열에서 날짜 값을 만듭니다.

int rmdyjul (짧은 mdy [3], 날짜 *d);

토토 사이트 3 개의 짧은 정수의 배열을 수신합니다 (mdy) 및 작업 결과를 유지 해야하는 유형 날짜 변수에 대한 포인터.

현재 함수는 항상 0을 반환합니다.

내부적으로 함수가 함수를 사용하도록 구현됩니다pgtypesdate_mdyjul.

rdayofweek #

날짜 값에 대한 요일을 나타내는 숫자를 반환합니다.

int rdayofweek (날짜 d);

토토 사이트 날짜 변수를 수신합니다d이 날짜의 요일을 나타내는 유일한 논쟁으로 반환합니다.

  • 0- 일요일

  • 1- 월요일

  • 2- 화요일

  • 3- 수요일

  • 4- 목요일

  • 5- 금요일

  • 6- 토요일

내부적으로 함수가 함수를 사용하도록 구현됩니다pgtypesdate_dayofweek.

dtcurrent #

현재 타임 스탬프 검색.

void dtcurrent (timestamp *ts);

이 함수는 현재 타임 스탬프를 검색하고이를 타임 스탬프 변수에 저장합니다.TS

dtcvasc #

텍스트 표현에서 타임 스탬프 변수로 타임 스탬프를 파싱합니다.

int dtcvasc (char *str, timestamp *ts);

토토 사이트 문자열을 구문 분석합니다 (str) 및 작업 결과를 유지 해야하는 타임 스탬프 변수에 대한 포인터 (TS).

토토 사이트 성공시 0을 반환하고 오류의 경우 음수 값을 반환합니다.

내부적 으로이 토토 사이트를 사용합니다.pgtypestimestamp_from_asc함수. 예제 입력이있는 테이블에 대한 참조를 참조하십시오.

dtcvfmtasc #

형식 마스크를 타임 스탬프 변수로 사용하여 텍스트 표현에서 타임 스탬프를 파싱합니다.

dtcvfmtasc (char *inbuf, char *fmtstr, timestamp *dtvalue)

토토 사이트 문자열을 구문 분석합니다 (Inbuf), 사용하는 형식 마스크 (FMTSTR) 및 작업 결과를 유지 해야하는 타임 스탬프 변수에 대한 포인터 (dtValue).

이 토토 사이트를 통해 구현됩니다.PGTYPESTIMESTAMP_DEFMT_ASC함수. 사용할 수있는 형식 지정자 목록은 문서를 참조하십시오.

토토 사이트 성공시 0을 반환하고 오류의 경우 음수 값을 반환합니다.

dtsub #

하나의 타임 스탬프를 다른 타임 스탬프에서 빼고 유형 간격의 변수를 반환합니다.

int dtsub (timestamp *ts1, timestamp *ts2, interval *iv);

토토 사이트 타임 스탬프 변수를 빼게됩니다.TS2타임 스탬프 변수를 가리키는TS1결과를 간격 변수에 포인트하고 저장합니다.IV

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

dttoasc #

타임 스탬프 변수를 C char* 문자열로 변환합니다.

int dttoasc (timestamp *ts, char *output);

이 토토 사이트 timestamp 변수에 대한 포인터를 수신합니다 (TS) 및 작업 결과를 유지 해야하는 문자열 (출력). 그것은 변환TSSQL 표준에 따른 텍스트 표현으로yyyy-mm-dd hh : mm : ss.

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

dttofmtasc #

형식 마스크를 사용하여 타임 스탬프 변수를 c char*로 변환합니다.

int dtttofmtasc (timestamp *ts, char *output, int str_len, char *fmtstr);

이 토토 사이트 첫 번째 인수로 변환하기 위해 타임 스탬프에 대한 포인터를 수신합니다 (TS), 출력 버퍼에 대한 포인터 (출력), 출력 버퍼에 할당 된 최대 길이 (str_len) 및 변환에 사용할 형식 마스크 (FMTSTR).

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

내부적 으로이 토토 사이트를 사용합니다.pgtypestimestamp_fmt_asc함수. 어떤 형식 마스크 지정자를 사용할 수 있는지에 대한 정보는 참조를 참조하십시오.

in andASC #

간격 변수를 C char* 문자열로 변환합니다.

int interasc (Interval *i, char *str);

토토 사이트 convert ( 간격 변수에 대한 포인터를 수신합니다.i) 및 작업 결과를 유지 해야하는 문자열 (str). 그것은 변환iSQL 표준에 따른 텍스트 표현으로yyyy-mm-dd hh : mm : ss.

성공시, 오류가 발생하면 함수가 0과 음수 값을 반환합니다.

rfmtlong #

형식 마스크를 사용하여 긴 정수 값을 텍스트 표현으로 변환합니다.

int rfmtlong (long lng_val, char *fmt, char *outbuf);

토토 사이트 긴 값을받습니다lng_val, 형식 마스크FMT및 출력 버퍼에 대한 포인터outbuf. 형식 마스크에 따라 긴 값을 텍스트 표현으로 변환합니다.

형식 마스크는 다음 형식으로 구성 될 수 있습니다.

  • *(별표) -이 위치가 비워지면 별표로 채우십시오.

  • &(Ampersand) -이 위치가 비워지면 0으로 채우십시오.

  • #- 이끄는 제로를 공란으로 돌립니다.

  • <- 문자열의 숫자를 좌회전합니다.

  • ,51226_51322

  • .(기간) -이 문자는 숫자의 전체 수 부분을 분수 부분에서 분리합니다.

  • -(마이너스) - 숫자가 음수 인 경우 마이너스 부호가 나타납니다.

  • +(플러스) - 숫자가 양수 값이면 플러스 부호가 나타납니다.

  • (- 음수 앞의 마이너스 부호를 대체합니다. 마이너스 부호가 나타나지 않습니다.

  • )-이 문자는 마이너스를 대체하고 음수 값 뒤에 인쇄됩니다.

  • $- 통화 기호.

Rupshift #

문자열을 대문자로 변환하십시오.

void rupshift (char *str);

토토 사이트 문자열에 대한 포인터를 수신하고 모든 소문자 문자를 대문자로 변환합니다.

byleng #

후행 공백을 계산하지 않고 문자열의 문자 수를 반환합니다.

int byleng (char *str, int len);

이 토토 사이트 고정 길이 문자열이 첫 번째 인수 (로 기대합니다.str) 두 번째 인수로서의 길이 (Len). 그것은 유효 문자의 수, 즉 후행 블랭크가없는 줄의 길이를 반환합니다.

LDCHAR #

고정 길이 문자열을 널리 터진 문자열로 복사하십시오.

void ldchar (char *src, int len, char *dest);

토토 사이트 복사 할 고정 길이 문자열을 수신합니다 (SRC), 길이 (Len) 및 대상 메모리에 대한 포인터 (dest). 적어도 예약해야합니다Len+1문자열의 바이트dest토토 사이트 최대 복사Len새 위치에 바이트 (소스 문자열에 후행 블랭크가있는 경우 적음) 및 Null-Terminator를 추가합니다.

rgetmsg #
int rgetmsg (int msgnum, char *s, int maxsize);

이 기능은 존재하지만 현재 구현되지 않았습니다!

rtypalign #
int rtypalign (int offset, int type);

이 기능은 존재하지만 현재 구현되지 않았습니다!

rtypmsize #
int rtypmsize (int type, int len);

이 기능은 존재하지만 현재 구현되지 않았습니다!

rtypwidth #
int rtypwidth (int sqltype, int sqllen);

이 기능은 존재하지만 현재 구현되지 않았습니다!

RSETNULL #

변수를 null로 설정합니다.

int rsetnull (int t, char *ptr);

토토 사이트 변수의 유형을 나타내는 정수와 c char* 포인터로 캐스팅되는 변수 자체에 대한 포인터를 나타냅니다..

다음 유형이 있습니다 :

  • CCHARTYPE- 유형 변수의 경우char또는char*

  • cshorttype- 유형 변수의 경우짧은 int

  • Cinttype- 유형 변수의 경우int

  • cbooltype- 유형 변수의 경우부울

  • cfloattype- 유형 변수의 경우float

  • ClongType- 유형 변수의 경우Long

  • CDOUBLETYPE- 유형 변수의 경우더블

  • CDECIMATTEPE- 유형 변수의 경우소수점

  • CDATETYPE- 유형 변수의 경우날짜

  • CDTIMETYPE- 유형 변수의 경우타임 스탬프

이 기능에 대한 호출의 예는 다음과 같습니다.

$ char c [] = "abc";
Risnull #

변수가 null인지 테스트합니다.

int risnull (int t, char *ptr);

토토 사이트 테스트 할 변수의 유형을 수신합니다 (t)이 변수에 대한 포인터 (PTR). 후자는 숯*에 캐스트되어야한다는 점에 유의하십시오.RSETNULL가능한 변수 유형 목록의 경우

이 기능을 사용하는 방법의 예는 다음과 같습니다.

$ char c [] = "abc";

34.15.5. 추가 상수#

여기의 모든 상수는 오류를 설명하고 모든 상수는 음수 값을 나타내도록 정의됩니다. 다른 상수에 대한 설명에서 현재 구현에서 상수가 나타내는 값을 찾을 수도 있습니다.

ecpg_informix_num_overflow #

함수 계산에서 오버플로가 발생하면이 값을 반환합니다. 내부적으로 -1200으로 정의됩니다 (Informix정의).

ecpg_informix_num_underflow #

함수 계산에서 언더 플로가 발생하면이 값을 반환합니다. 내부적으로 -1201 (로 정의됩니다.Informix정의).

ecpg_informix_divide_zero #

함수는 0으로 나누려는 시도가 관찰되면이 값을 반환합니다. 내부적으로 -1202로 정의됩니다 (Informix정의).

ecpg_informix_bad_year #

함수는 날짜를 구문 분석하는 동안 1 년 동안 나쁜 값이 발견되면이 값을 반환합니다. 내부적으로 -1204로 정의됩니다 (Informix정의).

ecpg_informix_bad_month #

함수는 날짜를 구문 분석하는 동안 한 달의 나쁜 값이 발견되면이 값을 반환합니다. 내부적으로 -1205로 정의됩니다 (Informix정의).

ecpg_informix_bad_day #

기능은 날짜를 구문 분석하는 동안 하루의 나쁜 값이 발견되면이 값을 반환합니다. 내부적으로 -1206으로 정의됩니다 (Informix정의).

ECPG_INFORMIX_ENOSHORTDATE #

함수는 구문 분석 루틴에 짧은 날짜 표현이 필요하지만 날짜 문자열을 올바른 길이로 얻지 못한 경우이 값을 반환합니다. 내부적으로 -1209로 정의됩니다 (Informix정의).

ecpg_informix_date_convert #

함수 날짜 서식 중에 오류가 발생하면이 값을 반환합니다. 내부적으로 -1210으로 정의됩니다 (Informix정의).

ecpg_informix_out_of_memory #

함수는 작동 중에 메모리가 소진 된 경우이 값을 반환합니다. 내부적으로 -1211 (로 정의됩니다.Informix정의).

ecpg_informix_enotdmy #

토토 사이트 구문 분석 루틴이 형식 마스크를 가져와야하는 경우이 값을 반환합니다 (kuemmddyy) 그러나 모든 필드가 올바르게 나열된 것은 아닙니다. 내부적으로 -1212로 정의됩니다 (Informix정의).

ecpg_informix_bad_numeric #

함수는 오류가 포함되어 있기 때문에 구문 분석 루틴이 숫자 값에 대한 텍스트 표현을 구문 분석 할 수 없거나 숫자 변수 중 하나 이상이 잘못 되었기 때문에 숫자 변수와 관련된 계산을 완료 할 수없는 경우이 값을 반환합니다. 내부적으로 -1213 (로 정의됩니다.Informix정의).

ecpg_informix_bad_exponent #

함수는 구문 분석 루틴이 지수를 구문 분석 할 수없는 경우이 값을 반환합니다. 내부적으로 -1216 (로 정의됩니다.Informix정의).

ecpg_informix_bad_date #

함수 구문 분석 루틴이 날짜를 구문 분석 할 수없는 경우이 값을 반환합니다. 내부적으로 -1218 (로 정의됩니다.Informix정의).

ecpg_informix_extra_chars #

함수는 구문 분석 루틴이 추가 문자로 전달되면이 값을 반환합니다. 구문 분석 할 수 없습니다. 내부적으로 -1264로 정의됩니다 (Informix정의).

수정 제출

올바르지 않은 문서에 아무것도 표시되면 일치하지 않습니다.이 양식문서 문제를보고하려면