Postgresql 9.3.25 문서화 | ||||
---|---|---|---|---|
이전 | 젠 토토 : 문서 : 9.3 : ECPG- C에 포함 된 SQL | 33 장ECPG- 임베디드SQLin c | 다음 |
ECPG소위에서 실행할 수 있습니다토토 베이 호환성 모드. 이 모드 인 경우 활동적이며 마치 마치 마치 행동하려고합니다.토토 베이프리 컴파일러토토 베이e/sql. 일반적으로 이것을 말합니다 대신 달러 표시를 사용할 수 있습니다Exec SQL임베디드 SQL을 소개하기위한 원시 명령 :
$ int j = 3; $ 연결 : dbname; $ 작성 테이블 테스트 (I int 기본 키, j int); $ test에 삽입 (i, j) 값 (7, : j); $ commit;
참고 :사이에 공백이 없어야합니다$및 다음 전처리 지침, 즉,포함, 정의, ifdef등 그렇지 않으면, 전처리자가 토큰을 호스트로 구문 분석합니다. 변하기 쉬운.
두 가지 호환 모드가 있습니다 :토토 베이, 토토 베이_se
이 호환 모드를 사용하는 프로그램을 연결할 때는 기억하십시오 링크libcompat배송됩니다 ECPG와 함께
이전에 설명 된 구문 설탕 외에도토토 베이호환 모드 포트 데이터의 입력, 출력 및 변환에 대한 일부 기능 E/SQL에서 ECPG로 알려진 임베디드 SQL 문으로
토토 베이호환성 모드입니다 ECPG의 PGTYPESLIB 라이브러리에 밀접하게 연결되었습니다. pgtypeslib SQL 데이터 유형을 C 호스트 프로그램 내에서 데이터 유형에 매핑하고 대부분의 추가 기능토토 베이호환성 모드를 통해 허용합니다 해당 C 호스트 프로그램 유형에서 작동합니다. 그러나 그 정도에 주목하십시오 호환성은 제한적입니다. 복사하려고하지 않습니다토토 베이행동; 그것은 당신을 허용합니다 다소 동일한 작업을 수행하고 귀하에게 기능을 제공하려면 동일한 이름과 동일한 기본 동작을 가지고 있지만 드롭 인이 아닙니다. 사용중인 경우 교체토토 베이현재. 또한, 일부 데이터 유형은 다릅니다. 예를 들어,postgresql 'sDateTime 및 간격 유형을 수행합니다 예를 들어 범위에 대해 알지 못합니다연도 분따라서 ECPG에서도 지원하지 않을 것입니다.
저장을위한 정보 특이 적 "문자열"의사 유형 오른쪽 트림 문자열 데이터가 이제 지원됩니다 사용하지 않고 토토 베이-Modetypedef. ~ 안에 사실, 토토 베이-Mode에서 ECPG는 소스 파일을 처리하는 것을 거부합니다. 포함하다typedef somegype String;
Exec SQL 시작 선언 섹션; 문자열 userID; / *이 변수에는 트림 데이터가 포함됩니다 */ Exec SQL END DELLARE SECTION; exec SQL Mycur에 : userId;
이 문장은 현재 연결을 닫습니다. 사실, 이것은 a입니다 ECPG의 동의어현재 연결 끊기:
$ 닫기 데이터베이스; / * 현재 연결을 닫습니다 */ Exec SQL Close Database;
ECPG의 차이로 인해 토토 베이와 비교하여 ESQL/C (즉, 순수한 문법 변환 및 기본 런타임 라이브러리에 의존하는 단계))무료 cursor_nameECPG의 진술. 이것 ECPG에서커서 선언그렇지 않습니다 기능 호출을 사용하는 런타임 라이브러리로 변환합니다. 커서 이름. 이것은 런타임 부기가 없음을 의미합니다 ECPG 런타임 라이브러리의 SQL 커서, Postgresql에서만 섬기는 사람.
무료 statement_name동의어Deallocate 준비 명령문 _name.
토토 베이 호환 모드는 다른 구조와 다른 구조를 지원합니다 에 설명 된 것)섹션 33.7.2. 아래를 참조하십시오 :
struct sqlvar_compat 짧은 sqltype; int sqllen; char *sqldata; 짧은 *sqlind; char *sqlname; char *sqlformat; 짧은 sqlitype; 짧은 sqlilen; char *sqlidata; int sqlxid; char *sqltypename; 짧은 sqltypelen; 짧은 sqlownerlen; 짧은 sqlsourceType; char *sqlownername; int sqlsourceid; char *sqlilongdata; int sqlflags; void *sqlreserved; ; struct sqlda_compat 짧은 SQLD; struct sqlvar_compat *sqlvar; char desc_name [19]; 짧은 desc_occ; struct sqlda_compat *desc_next; void *예약; ; typedef struct sqlvar_compat sqlvar_t; typedef struct sqlda_compat sqlda_t;
글로벌 속성은 다음과 같습니다.
의 필드 수SQLDA디스크립터.
필드 당 속성에 대한 포인터.
사용하지 않고 제로 바이트로 채워져 있습니다.
할당 된 구조의 크기.
결과 세트에 포함 된 경우 다음 SQLDA 구조에 대한 포인터 둘 이상의 레코드.
미사용 포인터, NULL을 포함합니다. 보관 정보 호환성.
당사자 속성은 아래에 있으며에 저장됩니다.sqlvar배열 :
필드의 유형. 상수가sqltypes.h
필드 데이터의 길이.
필드 데이터에 대한 포인터. 포인터는char *타입, 그것에 의해 지적 된 데이터는 이진에 있습니다. 체재. 예:
int intval; 스위치 (sqldata- sqlvar [i] .sqltype) CASE SQLINTEGER : intval = *(int *) sqldata- sqlvar [i] .sqldata; 부서지다; ...
널 표시기에 대한 포인터. 설명 또는 가져 오기에 의해 반환 된 경우 그런 다음 항상 유효한 포인터입니다. 입력으로 사용 된 경우실행 ... SQLDA 사용;그런 다음 널 포인터 값 이 필드의 값이 널이 아닌 것을 의미합니다. 그렇지 않으면 유효합니다 포인터 및sqlitype올바르게 있어야합니다 세트. 예:
if ( *(int2 *) sqldata- sqlvar [i] .sqlind! = 0) printf ( "값은 null \ n");
필드 이름. 0- 종료 문자열.
토토 베이에 예약, 값pqfformat ()
필드 용.
널 표시기 데이터의 유형. 언제 항상 sqlsmint입니다 서버에서 데이터를 반환합니다. 때SQLDA는 매개 변수화 쿼리에 사용되며 데이터는입니다 세트 유형에 따라 처리.
널 표시기 데이터의 길이.
필드의 확장 유형, 결과pqftype ()
.
미사용.
sqldataifSqllen32KB보다 큽니다.
예 :
exec sql 포함 sqlda.h; sqlda_t *sqlda; / * 이것은 내장 선언 섹션 아래에있을 필요가 없습니다 */ Exec SQL 시작 선언 섹션; char * prep_stmt = "select * from table1"; int i; Exec SQL END DELLARE SECTION; ... Exec SQL 준비 mystmt : prep_stmt; Exec SQL MystMt를 SQLDA로 설명합니다. printf ( "#의# : %d \ n", sqlda- sqld); for (i = 0; i <sqlda- sqld; i ++) printf ( "필드 %d : \" %s \ "\ n", sqlda- sqlvar [i]- sqlname); Exec SQL Mystmt에 대한 MyCursor 커서 선언; Exec SQL Open MyCursor; exec SQL을 찾을 수 없을 때마다; 동안 (1) SQLDA를 사용하여 Exec SQL Fetch MyCursor; Exec SQL Close MyCursor; 자유 (SQLDA); /* 주요 구조는 모두 무료입니다 () * sqlda 및 sqlda- sqlvar는 할당 된 영역에 있습니다 */
자세한 내용은를 참조하십시오.sqlda.h헤더 및src/interfaces/ecpg/test/compat_토토 베이/sqlda.pgc회귀 테스트.
Decadd
두 가지 소수점 유형 값 추가.
int decadd (Decimal *arg1, Decimal *arg2, Decimal *sum);
함수는 유형의 첫 번째 피연산자에 대한 포인터를 수신합니다. 10 진수 (arg1), 두 번째에 대한 포인터 십진수의 피연산자 (arg2) 및 a 합이 포함될 유형 소수점 값에 대한 포인터 (Sum). 성공시 함수는 0을 반환합니다.ecpg_토토 베이_num_overflow가 반환됩니다 오버플로의 경우 및ecpg_토토 베이_num_underflow언더 플로우의 경우. -1 다른 실패로 반환되고errno각각으로 설정되었습니다errno수 pgtypeslib.
deccmp
십진 유형의 두 변수 비교.
int deccmp (Decimal *arg1, Decimal *arg2);
함수는 첫 번째 십진 값에 대한 포인터를 수신합니다. (arg1), 두 번째 소수점에 대한 포인터 값 (arg2) 정수 값을 반환합니다 그것은 어느 것이 더 큰 가치인지를 나타냅니다.
1, 값이라면arg1그 가치보다 더var2포인트 에게
-1, 값인 경우arg1그 가치보다 작음arg2포인트 에게
0, 값이라면arg1그 가치arg2동일한
Deccopy
소수점 값 복사.
void deccopy (소수 *src, 소수 *대상);
함수는 10 진수 값에 대한 포인터를 수신합니다. 첫 번째 인수로 복사하십시오 (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_토토 베이_num_overflow또는ecpg_토토 베이_num_underflow반환됩니다. ASCII 표현을 구문 분석 할 수 없다면ecpg_토토 베이_bad_numeric반환 또는ecpg_토토 베이_bad_exponent이 문제가 발생한 경우 지수를 구문 분석하는 동안
deccvdbl
유형 값을 두 배의 값을 유형의 값으로 변환합니다.
int deccvdbl (Double DBl, Decimal *np);
함수는 이중 유형의 변수를받습니다. 첫 번째 인수로 변환 (dbl). 처럼 두 번째 인수 (NP), 함수 고정해야 할 소수점 변수에 대한 포인터를 수신합니다. 수술 결과.
함수는 성공시 0을 반환하고 전환 실패.
deccvint
int 유형 값을 유형의 값으로 변환
int deccvint (int in, decimal *np);
함수는 유형의 변수를 수신해야합니다. 첫 번째 인수로 변환 (in). 처럼 두 번째 인수 (NP), 함수 고정해야 할 소수점 변수에 대한 포인터를 수신합니다. 수술 결과.
함수는 성공시 0을 반환하고 음수 값은 전환 실패.
deccvlong
유형의 값을 유형의 값으로 변환하십시오.
int deccvlong (Long lng, Decimal *np);
함수는 긴 유형의 변수를받습니다. 첫 번째 인수로 변환 (lng). 처럼 두 번째 인수 (NP), 함수 고정해야 할 소수점 변수에 대한 포인터를 수신합니다. 수술 결과.
함수는 성공시 0을 반환하고 전환 실패.
decdiv
십진 유형의 두 변수를 나눕니다.
int decdiv (소수 *n1, 소수 *n2, 소수 *결과);
함수는 변수에 대한 포인터를 수신합니다. 첫 번째 (N1) 및 두 번째 (N2) 피연산자 및 계산N1/N2. 결과는 보유 해야하는 변수에 대한 포인터입니다 작업 결과.
성공시, 0이 반환되고 부서 인 경우 음수 값이 반환됩니다. 실패합니다. 오버플로 또는 언더 플로가 발생하면 함수가 반환ecpg_토토 베이_num_overflow또는ecpg_토토 베이_num_underflow각각. 만약 0으로 나누려는 시도가 관찰되고, 함수는 반환ecpg_informix_divide_zero.
Decmul
두 가지 소수점 값을 곱하십시오.
int decmul (소수 *n1, 소수 *n2, 소수 *결과);
함수는 변수에 대한 포인터를 수신합니다. 첫 번째 (N1) 및 두 번째 (N2) 피연산자 및 계산N1*N2. 결과는 보유 해야하는 변수에 대한 포인터입니다 작업 결과.
성공시 0이 반환되고 음수 값이 곱셈이 실패합니다. 오버플로 또는 언더 플로가 발생하면 기능 반환ecpg_토토 베이_num_overflow또는ecpg_토토 베이_num_underflow각각.
DECSUB
하나의 소수점 값을 다른 사람에게 빼십시오.
int decsub (소수 *n1, 소수 *n2, 소수 *결과);
함수는 변수에 대한 포인터를받습니다. 첫 번째 (N1) 및 두 번째 (N2) 피연산자 및 계산N1-N2. 결과는 보유 해야하는 변수에 대한 포인터입니다 작업 결과.
성공시 0이 반환되고 음수 값이 뺄셈이 실패합니다. 오버플로 또는 언더 플로우가 발생하면 기능이 있습니다 보고ecpg_토토 베이_num_overflow또는ecpg_토토 베이_num_underflow각각.
dectoasc
유형의 변수를 ASCII 표현으로 변환 C char* 문자열에서.
int dectoasc (Decimal *np, char *cp, int len, int right)
함수는 유형의 변수에 대한 포인터를 수신합니다. (NP) 텍스트로 변환됩니다 대표.CP는 버퍼입니다 작업 결과를 유지해야합니다. 매개 변수오른쪽오른쪽의 오른쪽 숫자 수를 지정합니다 소수점은 출력에 포함되어야합니다. 결과가 될 것입니다 이 수의 10 진수 숫자로 반올림됩니다. 환경오른쪽~ -1은 사용 가능한 모든 소수점을 나타냅니다 숫자는 출력에 포함되어야합니다. 길이의 길이 출력 버퍼,LenZero Byte의 후행, 단일*문자는 결과에 저장되고 -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_토토 베이_num_overflow반환되었습니다.
ECPG 구현은와 다릅니다.토토 베이구현.토토 베이정수를 범위로 제한합니다 -32767 ~ 32767, ECPG 구현의 한계는 아키텍처에서 (-int_max .. int_max).
dectolong
변수를 소수점을 긴 정수로 입력하도록 변환.
int dectolong (Decimal *np, long *lngp);
함수는 변환 할 소수 값에 대한 포인터를 수신합니다. (NP) 및 긴 변수에 대한 포인터 작동 결과를 유지해야합니다 (LNGP).
성공시 0이 반환되고 변환이있는 경우 음수 값이 반환됩니다. 실패한. 오버플로가 발생하면ecpg_토토 베이_num_overflow반환되었습니다.
ECPG 구현은와 다릅니다.토토 베이구현.토토 베이긴 정수를 범위로 제한합니다 -2,147,483,647에서 2,147,483,647에서 ECPG의 한도는 구현은 아키텍처에 따라 다릅니다 (-long_max .. long_max).
rdatest
날짜를 c char* 문자열로 변환합니다.
int rdatest (날짜 d, char *str);
함수는 두 개의 인수를 받고 첫 번째 인수는 날짜입니다. 변환하려면 (D) 두 번째는 a입니다 대상 문자열에 대한 포인터. 출력 형식은 항상yyyy-mm-dd이므로 할당해야합니다 최소 11 바이트 (제로 바이트 터미네이터 포함) 끈.
함수는 성공시 0을 반환하고 경우에 따라 음수 값을 반환합니다. 오류의.
ECPG의 구현은와 다릅니다.토토 베이구현. 안에토토 베이형식은 영향을받을 수 있습니다 환경 변수 설정. 그러나 ECPG에서는 변경할 수 없습니다 출력 형식.
rstrdate
날짜의 텍스트 표현을 구문 분석합니다.
int rstrdate (char *str, date *d);
함수는 날짜의 텍스트 표현을받습니다.
전환하다 (str) 및 변수에 대한 포인터
유형 날짜 (D). 이 기능은 그렇지 않습니다
형식 마스크를 지정할 수 있습니다. 기본 형식 마스크를 사용합니다
의토토 베이mm/dd/yyyy. 내부적 으로이 기능은 구현됩니다
를 통해rdefmtdate
. 그러므로,rstrdate
더 빠르지 않으며 당신이
선택해야 할 선택이있어rdefmtdate
이를 통해 형식을 지정할 수 있습니다
명시 적으로 마스크.
함수는와 동일한 값을 반환합니다.rdefmtdate
.
rtoday
현재 날짜 받기.
void rtoday (날짜 *d);
함수는 날짜 변수에 대한 포인터를 수신합니다 (D) 현재 날짜로 설정됩니다.
내부적 으로이 함수는를 사용합니다.pgtypesdate_today
함수.
rjulmdy
유형의 변수.
int rjulmdy (날짜 d, 짧은 mdy [3]);
함수는 날짜를받습니다d및 a 3 개의 짧은 정수 값 배열에 대한 포인터mdy. 변수 이름은 순차를 나타냅니다 주문하다:mdy [0]를 포함하도록 설정됩니다 월 수,mdy [1]오늘의 가치와mdy [2]의지 연도를 포함하십시오.
함수는 현재 항상 0을 반환합니다.
내부적으로 함수는를 사용합니다.pgtypesdate_julmdy
함수.
rdefmtdate
형식 마스크를 사용하여 문자열을 다음의 값으로 변환합니다. 유형 날짜.
int rdefmtdate (날짜 *d, char *fmt, char *str);
함수는 날짜 값에 대한 포인터를 수신합니다. 작동 결과를 유지하십시오 (d), 날짜를 구문 분석하는 데 사용할 마스크 형식 (FMT) 및 텍스트를 포함하는 C char* 문자열 날짜의 표현 (str). 그만큼 텍스트 표현은 형식 마스크와 일치 할 것으로 예상됩니다. 그러나 문자열을 1 : 1 매핑 할 필요는 없습니다. 형식 마스크. 이 함수는 순차적 순서 만 분석합니다 리터럴 찾기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
텍스트 표현에서 a로 타임 스탬프를 파싱합니다 타임 스탬프 변수.
int dtcvasc (char *str, timestamp *ts);
함수는 문자열을 구문 분석합니다 (str) 및 타임 스탬프 변수에 대한 포인터 작동 결과를 유지해야합니다 (TS).
함수는 성공시 0을 반환하고 경우에 따라 음수 값을 반환합니다. 오류의.
내부적 으로이 함수는를 사용합니다.pgtypestimestamp_from_asc
함수. 참조
예제 입력이있는 테이블에 대한 참조
DTCVFMTASC
a 타임 스탬프 변수로 마스크를 형식으로 형식화합니다.
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);
함수는 TimesStamp 변수에 대한 포인터를 수신합니다. 전환하다 (TS) 및 문자열 작동 결과를 유지하십시오 (출력). 그것은 변환TS그 텍스트 SQL 표준에 따른 표현은yyyy-mm-dd hh : mm : ss.
성공시, 함수는 0과 음수 값을 반환합니다. 오류가 발생했습니다.
dttofmtasc
형식을 사용하여 타임 스탬프 변수를 c char*로 변환 마스크.
int dttofmtasc (timestamp *ts, char *output, int str_len, char *fmtstr);
함수는 TimeStamp에 대한 포인터를 수신하여 변환합니다. 첫 번째 주장 (TS), 출력 버퍼 (출력), 최대 길이 출력 버퍼 (에 할당되었습니다.str_len) 및 사용 할 형식 마스크 변환 (FMTSTR).
성공시, 함수는 0과 음수 값을 반환합니다. 오류가 발생했습니다.
내부적 으로이 함수는를 사용합니다.pgtypestimestamp_fmt_asc
함수. 참조
형식 마스크 지정자가 할 수있는 정보에 대한 정보에 대해 참조
사용하십시오.
in andASC
간격 변수를 C char* 문자열로 변환합니다.
int interasc (Interval *i, char *str);
함수는 간격 변수에 대한 포인터를 수신합니다. 전환하다 (i) 및 문자열 작동 결과를 유지하십시오 (str). 그것 개종자i텍스트 표현 SQL 표준에 따르면yyyy-mm-dd hh : mm : ss.
성공시, 함수는 0과 음수 값을 반환합니다. 오류가 발생했습니다.
rfmtlong
긴 정수 값을 텍스트 표현으로 변환 형식 마스크.
int rfmtlong (long lng_val, char *fmt, char *outbuf);
함수는 긴 값을받습니다lng_val, 형식 마스크FMT및 출력 버퍼에 대한 포인터outbuf. 그것은 긴 값을 변환합니다 텍스트 표현에 마스크 형식.
형식 마스크는 다음 형식으로 구성 될 수 있습니다. 문자 지정 :
*(별표) -이 위치가 원한다면 그렇지 않으면 비워 두십시오. 별표로 채우십시오.
&(Ampersand) -이 위치 인 경우 그렇지 않으면 비어있을 것입니다. 0으로 채우십시오.
#- 이끄는 제로를 돌립니다 공백.
<- 왼쪽으로 숫자를 정당화합니다 끈.
,(Comma) - 4 개 또는 그룹 번호 쉼표로 분리 된 3 자리 숫자 그룹에 더 많은 숫자가 있습니다.
.(기간) -이 문자는 분리됩니다 분수 부분에서 숫자의 전체 수 부분.
-(마이너스) - 마이너스 부호가 다음에 나타납니다 숫자는 음수입니다.
+(플러스) - 플러스 부호가 나타납니다 숫자는 긍정적 값입니다.
(- 마이너스 로그인을 대체합니다 음수의 전면. 마이너스 부호가 나타나지 않습니다.
)-이 문자는 마이너스를 대체합니다 그리고 음수 값 뒤에 인쇄됩니다.
$- 통화 기호.
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새 위치에 바이트 (적음 소스 문자열에 후행 공백이있는 경우) 널 터미네이터.
rgetmsg
int rgetmsg (int msgnum, char *s, int maxsize);
이 기능은 존재하지만 현재 구현되지 않았습니다!
rtypalign
int rtypalign (int 오프셋, int 유형);
이 기능은 존재하지만 현재 구현되지 않았습니다!
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- 유형 변수의 경우Decimal
CDATETYPE- 유형 변수의 경우날짜
CDTIMETYPE- 유형 변수의 경우타임 스탬프
이 기능에 대한 호출의 예는 다음과 같습니다.
$ char c [] = "abc"; $ 짧은 s = 17; $ int i = -74874; RSETNULL (CCHARTYPE, (char *) C); rsetnull (cshorttype, (char *) & s); rsetnull (cinttype, (char *) & i);
Risnull
변수가 null인지 테스트합니다.
int risnull (int t, char *ptr);
함수는 테스트 할 변수의 유형을 수신합니다.
(T)이 변수에 대한 포인터입니다
(ptr). 후자는 필요합니다
숯으로 캐스팅. 함수보기RSETNULL
가능한 변수 목록의 경우
유형.
이 기능을 사용하는 방법의 예는 다음과 같습니다.
$ char c [] = "abc"; $ 짧은 s = 17; $ int i = -74874; Risnull (CCHARTYPE, (char *) c); Risnull (cshorttype, (char *) & s); Risnull (Cinttype, (char *) & i);
여기의 모든 상수는 오류를 설명하며 모든 상수는 다음과 같습니다. 음수 값을 나타내도록 정의됩니다. 설명에서 상수가 상수의 값을 찾을 수도 있습니다. 현재 구현을 나타냅니다. 그러나 당신은해서는 안됩니다 이 숫자에 의존하십시오. 그러나 당신은 그들 모두 사실에 의존 할 수 있습니다. 음수 값을 나타내는 것으로 정의됩니다.
함수는 오버플로가 발생하면이 값을 반환합니다. 계산. 내부적으로 -1200으로 정의됩니다 (토토 베이정의).
함수는 언더 플로우가 계산. 내부적으로 -1201 (로 정의됩니다.토토 베이정의).
함수는 0으로 나누려고 시도하는 경우이 값을 반환합니다. 관찰되었습니다. 내부적으로 -1202로 정의됩니다 (토토 베이정의).
함수는 1 년 동안 나쁜 값이 발견되면이 값을 반환합니다. 날짜를 구문 분석하는 동안. 내부적으로 -1204로 정의됩니다 (토토 베이정의).
함수는 한 달의 나쁜 값이 발견되면이 값을 반환합니다. 날짜를 구문 분석하는 동안. 내부적으로 -1205로 정의됩니다 (토토 베이정의).
함수는 하루의 나쁜 값이 발견되면이 값을 반환합니다. 날짜를 구문 분석하는 동안. 내부적으로 -1206으로 정의됩니다 (토토 베이정의).
함수는 구문 분석 루틴이 짧은 경우이 값을 반환합니다. 날짜 표현이지만 오른쪽에 날짜 문자열을 얻지 못했습니다. 길이. 내부적으로 -1209로 정의됩니다 (토토 베이정의).
함수는 날짜에 오류가 발생한 경우이 값을 반환합니다. 서식. 내부적으로 -1210으로 정의됩니다 (토토 베이정의).
함수는 메모리가 소진 된 경우이 값을 반환합니다. 작업. 내부적으로 -1211 (로 정의됩니다.토토 베이정의).
함수는 구문 분석 루틴이 예상되는 경우이 값을 반환합니다. 형식 마스크 가져 오기 (예 :mmddyy) 모든 필드는 올바르게 나열되었습니다. 내부적으로 -1212로 정의됩니다 (그만큼토토 베이정의).
함수는 구문 분석 루틴이 할 수없는 경우이 값을 반환합니다. 숫자 값에 대한 텍스트 표현을 구문 분석하기 때문입니다. 오류가 포함되거나 루틴이 계산을 완료 할 수없는 경우 숫자 중 하나 이상이기 때문에 숫자 변수를 포함합니다. 변수는 유효하지 않습니다. 내부적으로 -1213 (로 정의됩니다.토토 베이정의).
함수는 구문 분석 루틴이 구문 분석 할 수없는 경우이 값을 반환합니다. 멱지수. 내부적으로 -1216 (로 정의됩니다.토토 베이정의).
함수는 구문 분석 루틴이 구문 분석 할 수없는 경우이 값을 반환합니다. 날짜. 내부적으로 -1218 (로 정의됩니다.토토 베이정의).
함수는 구문 분석 루틴이 추가로 전달되면이 값을 반환합니다. 문자 구문 분석 할 수 없습니다. 내부적으로 -1264로 정의됩니다 (토토 베이정의).