| PostgreSQL 9.1.24 문서 | ||||
|---|---|---|---|---|
| Postgre토토 : 문서 : 9.1 : 언제라도 | 토토 : 문서 : 9.1 : ECPG- C에 포함 된 SQL | 33장.ECPG- 임베디드SQLC에서 | 다음 | |
ecpg소위에서 실행될 수 있습니다Informix 호환 모드. 만약 이 모드가 활성화되어 있으면 마치 모드인 것처럼 동작하려고 합니다.인포믹스에 대한 사전 컴파일러인포믹스E/SQL. 일반적으로 말하면 이렇습니다. 대신에 달러 기호를 사용할 수 있습니다.EXEC SQL내장 SQL을 도입하기 위한 프리미티브 명령:
$int j = 3; $CONNECT TO :db이름; $CREATE TABLE 테스트(i INT PRIMARY KEY, j INT); $INSERT INTO test(i, j) VALUES (7, :j); $COMMIT;
참고:다음 사이에 공백이 있어서는 안 됩니다.$및 다음 전처리기 지시문, 즉,포함, 정의, ifdef등. 그렇지 않으면 전처리기가 토큰을 호스트 변수로 구문 분석합니다.
두 가지 호환성 모드가 있습니다:INFORMIX, INFORMIX_SE
이 호환 모드를 사용하는 프로그램을 링크할 때, 연결하는 것을 잊지 마세요.libcompat그것 ECPG와 함께 배송됩니다.
이전에 설명한 구문 설탕 외에,인포믹스호환성 모드 데이터의 입력, 출력 및 변환을 위한 일부 기능을 포트합니다. E/SQL에서 ECPG로 알려진 내장 SQL 문도 포함됩니다.
인포믹스호환성 모드 ECPG의 pgtypeslib 라이브러리와 밀접하게 연결되어 있습니다. pgtypeslib는 SQL 데이터 유형을 C 호스트 내의 데이터 유형에 매핑합니다. 프로그램과 대부분의 추가 기능은인포믹스호환성 모드를 사용하면 다음을 수행할 수 있습니다. 해당 C 호스트 프로그램 유형에서 작동합니다. 그러나 호환성 정도가 제한되어 있습니다. 복사를 시도하지 않습니다.인포믹스행동; 그것은 당신을 허용합니다 거의 동일한 작업을 수행하고 기능을 제공합니다. 이름이 같고 기본 동작이 동일하지만 그렇지 않습니다. 사용 중인 경우 드롭인 교체인포믹스현재. 더욱이, 일부 데이터 유형이 다릅니다. 예를 들어,PostgreSQL의datetime 및 간격 유형은 다음과 같습니다. 예를 들어 같은 범위에 대해 모릅니다.연도 TO 분따라서 ECPG에서는 이에 대한 지원을 찾을 수 없습니다. 어느 쪽이든.
저장을 위한 Informix 특수 "문자열" 의사 유형 이제 오른쪽으로 잘린 문자열 데이터가 다음에서 지원됩니다. 사용하지 않는 Informix 모드typedef. 실제로 Informix 모드에서는 ECPG가 소스 파일 처리를 거부합니다. 다음을 포함하는typedef 일부 유형 문자열;
EXEC SQL 시작 선언 섹션; 문자열 사용자 ID; /* 이 변수에는 잘린 데이터가 포함됩니다 */ EXEC SQL END 선언 섹션; EXEC SQL FETCH MYCUR INTO :userid;
이 명령문은 현재 연결을 닫습니다. 사실, 이것은 ECPG의 동의어입니다.현재 연결 끊기:
$CLOSE 데이터베이스; /* 현재 연결을 끊는다 */ EXEC SQL 닫기 데이터베이스;
ECPG가 작동하는 방식의 차이로 인해 Informix의 ESQL/C(즉, 순전히 문법 단계임) 변환 및 기본 변환에 의존하는 단계 런타임 라이브러리) 없음무료 커서_이름ECPG의 진술. 이는 에서 심전도,커서 선언그렇지 않습니다 런타임 라이브러리에 대한 함수 호출로 변환 커서 이름에 사용됩니다. 이는 없다는 뜻이다. ECPG 런타임에서 SQL 커서의 런타임 기록 라이브러리는 PostgreSQL 서버에만 있습니다.
무료 성명_이름은 동의어할당 취소 준비 성명_이름.
Informix 호환 모드는 다음과 다른 구조를 지원합니다. 에 설명된 것섹션 33.7.2. 아래를 참조하세요:
구조체 sqlvar_compat
짧은 sqltype;
int sqllen;
char *sqldata;
짧은 *sqlind;
char *sql이름;
char *sqlformat;
짧은 SQLitype;
짧은 SQLilen;
char *sqlidata;
int sqlxid;
char *sqltypename;
짧은 sqltypelen;
짧은 sqlownerlen;
짧은 sqlsourcetype;
char *sql소유자이름;
int sqlsourceid;
char *sqlilongdata;
int sqlflags;
무효 *sqlreserved;
;
구조체 sqlda_compat
짧은 sqld;
struct sqlvar_compat *sqlvar;
char 설명_이름[19];
짧은 desc_occ;
구조체 sqlda_compat *desc_next;
무효 *예약됨;
;
typedef struct sqlvar_compat sqlvar_t;
typedef struct sqlda_compat sqlda_t;
전역 속성은 다음과 같습니다:
필드의 수SQLDA설명자.
필드별 속성에 대한 포인터.
미사용, 0바이트로 채워짐.
할당된 구조의 크기.
결과가 설정된 경우 다음 SQLDA 구조에 대한 포인터 둘 이상의 레코드가 포함되어 있습니다.
사용되지 않은 포인터, NULL이 포함되어 있습니다. 보관 Informix 호환성.
필드별 속성은 아래와 같습니다. 해당 속성은 다음에 저장됩니다.sqlvar배열:
필드 유형. 상수가 들어있습니다.sqltypes.h
필드 데이터의 길이.
필드 데이터에 대한 포인터. 포인터는 다음과 같습니다.문자 *유형, 다음이 가리키는 데이터 바이너리 형식입니다. 예:
int intval;
스위치(sqldata-sqlvar[i].sqltype)
사례 SQLINTEGER:
intval = *(int *)sqldata-sqlvar[i].sqldata;
부서지다;
...
NULL 표시기를 가리키는 포인터입니다. DESCRIBE로 반환된 경우 또는 FETCH이면 항상 유효한 포인터입니다. 다음과 같이 사용하는 경우 에 대한 입력실행 중... 사용 중 SQLDA;그러면 NULL 포인터 값은 값이 이 필드는 NULL이 아닙니다. 그렇지 않으면 유효한 포인터 및sqlitype올바르게 설정되어야 합니다. 예:
if (*(int2 *)sqldata-sqlvar[i].sqlind != 0)
printf("값은 NULL입니다\n");
필드 이름. 0으로 끝나는 문자열입니다.
Informix에 예약됨, 값PQfformat()필드용.
NULL 표시 데이터의 유형. 항상 SQLSMINT입니다. 서버에서 데이터를 반환할 때. 때SQLDA은 매개변수화된 쿼리에 사용됩니다. 데이터는 설정된 유형에 따라 처리됩니다.
NULL 표시 데이터의 길이.
필드의 확장된 유형, 결과PQftype().
미사용.
다음과 같습니다sqldataifsqllen32KB보다 큽니다.
예:
EXEC SQL INCLUDE sqlda.h;
sqlda_t *sqlda; /* DECLARE SECTION에 포함될 필요는 없습니다 */
EXEC SQL 시작 선언 섹션;
char *prep_stmt = "table1에서 * 선택";
나는 int;
EXEC SQL END 선언 섹션;
...
EXEC SQL PREPARE mystmt FROM :prep_stmt;
EXEC SQL DESCRIBE mystmt INTO sqlda;
printf("필드 수: %d\n", sqlda-sqld);
for (i = 0; i < sqlda-sqld; i++)
printf("필드 %d: \"%s\"\n", sqlda-sqlvar[i]-sqlname);
EXEC SQL DECLARE mycursor CURSOR FOR mystmt;
EXEC SQL OPEN mycursor;
발견되지 않은 경우 EXEC SQL이 실행됩니다.
동안 (1)
EXEC SQL FETCH mycursor USING sqlda;
EXEC SQL CLOSE mycursor;
무료(sqlda); /* 주요 구조는 모두 free()입니다.
* sqlda와 sqlda-sqlvar는 하나의 할당 영역에 있음 */
자세한 내용은 다음을 참조하세요.sqlda.h헤더 및src/interfaces/ecpg/test/compat_informix/sqlda.pgc회귀 테스트.
십년두 개의 십진수 유형 값을 추가합니다.
int decadd(십진수 *arg1, 십진수 *arg2, 십진수 *sum);
메이저 토토 사이트 첫 번째 피연산자에 대한 포인터를 받습니다. 10진수 유형(arg1), 10진수 유형의 두 번째 피연산자에 대한 포인터(arg2) 및 유형 값에 대한 포인터 합계가 포함될 십진수(합계). 성공하면 메이저 토토 사이트 0을 반환합니다.ECPG_INFORMIX_NUM_OVERFLOW이다 오버플로가 발생한 경우 반환되며ECPG_INFORMIX_NUM_UNDERFLOW다음의 경우 언더플로우. 다른 실패의 경우 -1이 반환됩니다.errno각각으로 설정됨errno개 pgtypeslib.
decmp십진수 유형의 두 변수를 비교하십시오.
int deccmp(십진수 *arg1, 십진수 *arg2);
메이저 토토 사이트 첫 번째 소수점에 대한 포인터를 받습니다 값(arg1), 포인터 두 번째 소수점 값(arg2) 및 어느 것이 무엇인지 나타내는 정수 값을 반환합니다. 더 큰 가치.
1, 해당 값이arg1포인트가 해당 값보다 큽니다.var2다음을 가리킨다
-1, 값이 다음과 같은 경우arg1점은 다음보다 작습니다. 그 가치를 평가해 보세요arg2포인트 에
0, 값이 다음과 같은 경우arg1가리키는 값과arg2포인트가 같음
deccopy십진수 값을 복사하세요.
void deccopy(십진수 *src, 십진수 *target);
메이저 토토 사이트 십진수 값에 대한 포인터를 받습니다. 첫 번째 인수로 복사되어야 합니다(src) 및 대상 구조에 대한 포인터 10진수 유형(대상) 두 번째 인수.
deccvasc값을 ASCII 표현에서 다음으로 변환합니다. 십진수 유형.
int deccvasc(char *cp, int len, 십진수 *np);
함수는 문자열에 대한 포인터를 받습니다. 숫자의 문자열 표현을 포함합니다. 변환됨(cp) 뿐만 아니라 길이len. np은 10진수 값에 대한 포인터입니다. 작업 결과를 저장합니다.
유효한 형식은 예를 들면 다음과 같습니다:-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이 문제가 발생하면 지수를 구문 분석하는 동안 발생했습니다.
deccvdbldouble 유형의 값을 유형의 값으로 변환 십진수.
int deccvdbl(이중 dbl, 십진수 *np);
메이저 토토 사이트 double 유형의 변수를 받습니다. 첫 번째 인수로 변환되어야 합니다(dbl). 두 번째 인수(np), 함수는 다음에 대한 포인터를 받습니다. 결과를 보유해야 하는 10진수 변수 작동합니다.
메이저 토토 사이트 성공 시 0을 반환하고 음수 값을 반환합니다. 변환이 실패한 경우.
decvintint 유형의 값을 유형의 값으로 변환 십진수.
int deccvint(int in, 십진수 *np);
메이저 토토 사이트 int 유형의 변수를 받습니다. 첫 번째 인수로 변환되어야 합니다(in). 두 번째 인수(np), 함수는 다음에 대한 포인터를 받습니다. 결과를 보유해야 하는 10진수 변수 작동합니다.
메이저 토토 사이트 성공 시 0을 반환하고 음수 값을 반환합니다. 변환이 실패한 경우.
deccvlonglong 유형의 값을 유형의 값으로 변환 십진수.
int deccvlong(long lng, 십진수 *np);
메이저 토토 사이트 long 유형의 변수를 받습니다. 첫 번째 인수로 변환되어야 합니다(lng). 두 번째 인수(np), 함수는 다음에 대한 포인터를 받습니다. 결과를 보유해야 하는 10진수 변수 작동합니다.
메이저 토토 사이트 성공 시 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(십진수 *n1, 십진수 *n2, 십진수 *결과);
메이저 토토 사이트 변수에 대한 포인터를 받습니다. 첫 번째입니다(n1) 및 초(n2) 피연산자 및 계산하다n1*n2. 결과은 결과를 보유해야 하는 변수에 대한 포인터 작전.
성공 시 0이 반환되며 다음과 같은 경우 음수 값이 반환됩니다. 곱셈이 실패합니다. 오버플로, 언더플로가 발생한 경우 함수가 반환됩니다.ECPG_INFORMIX_NUM_OVERFLOW또는ECPG_INFORMIX_NUM_UNDERFLOW각각.
decsub10진수 값에서 다른 값을 뺍니다.
int decsub(십진수 *n1, 십진수 *n2, 십진수 *결과);
메이저 토토 사이트 변수에 대한 포인터를 받습니다. 첫 번째입니다(n1) 및 초(n2) 피연산자 및 계산하다n1-n2. 결과은 결과를 보유해야 하는 변수에 대한 포인터 작전.
성공 시 0이 반환되며 다음과 같은 경우 음수 값이 반환됩니다. 빼기가 실패합니다. 오버플로 또는 언더플로가 발생한 경우 함수 반환ECPG_INFORMIX_NUM_OVERFLOW또는ECPG_INFORMIX_NUM_UNDERFLOW각각.
dectoasc10진수 유형의 변수를 ASCII로 변환 C char* 문자열로 표현됩니다.
int dectoasc(decimal *np, char *cp, int len, int right)
함수는 다음 유형의 변수에 대한 포인터를 받습니다. 십진수(np)로 변환됩니다. 텍스트 표현입니다.cp은 다음의 결과를 보유해야 하는 버퍼입니다. 운영. 매개변수맞아요소수점 이하 자릿수를 지정합니다. 출력에 포함되어야 합니다. 결과는 다음과 같습니다 이 소수점 이하 자릿수로 반올림됩니다. 설정맞아요to -1은 모든 사용 가능한 십진수는 출력. 출력 버퍼의 길이가 으로 표시됨len아님 다음을 포함한 텍스트 표현을 보유하기에 충분합니다. 후행 0바이트, 단 하나만*문자는 결과에 저장되며 -1 반환됩니다.
메이저 토토 사이트 버퍼인 경우 -1을 반환합니다.cp너무 작았거나ECPG_INFORMIX_OUT_OF_MEMORY메모리가 지쳤어.
dectodbl10진수 유형의 변수를 double로 변환합니다.
int dectodbl(십진수 *np, 이중 *dblp);
메이저 토토 사이트 십진수 값에 대한 포인터를 받습니다. 변환하려면 (np) 및 포인터 결과를 보유해야 하는 이중 변수 작업(dblp).
성공 시 0이 반환되며 다음과 같은 경우 음수 값이 반환됩니다. 변환에 실패했습니다.
디토인트10진수를 입력하는 변수를 정수로 변환합니다.
int dectoint(십진수 *np, int *ip);
메이저 토토 사이트 십진수 값에 대한 포인터를 받습니다. 변환하려면 (np) 및 포인터 결과를 보유해야 하는 정수 변수 작업(ip).
성공 시 0이 반환되며 다음과 같은 경우 음수 값이 반환됩니다. 변환에 실패했습니다. 오버플로가 발생한 경우,ECPG_INFORMIX_NUM_OVERFLOW이다 돌아왔습니다.
ECPG 구현은 다음과 다릅니다.인포믹스구현.인포믹스제한 -32767에서 32767 사이의 정수이고, ECPG 구현의 한계는 다음에 따라 달라집니다. 아키텍처(-INT_MAX .. INT_MAX).
덱토롱10진수 유형의 변수를 긴 유형으로 변환 정수.
int dectolong(십진수 *np, long *lngp);
메이저 토토 사이트 십진수 값에 대한 포인터를 받습니다. 변환하려면 (np) 및 포인터 결과를 보유해야 하는 긴 변수 작업(lngp).
성공 시 0이 반환되며 다음과 같은 경우 음수 값이 반환됩니다. 변환에 실패했습니다. 오버플로가 발생한 경우,ECPG_INFORMIX_NUM_OVERFLOW이다 돌아왔습니다.
ECPG 구현은 다음과 다릅니다.인포믹스구현.인포믹스긴 시간을 제한합니다 -2,147,483,647 ~ 범위의 정수 2,147,483,647, ECPG의 한도 구현은 아키텍처에 따라 다릅니다(-LONG_MAX .. LONG_MAX).
rdatestr날짜를 C 문자* 문자열로 변환합니다.
int rdatestr(date d, char *str);
메이저 토토 사이트 두 개의 인수를 받습니다. 첫 번째 인수는 변환할 날짜(d) 및 두 번째는 대상 문자열에 대한 포인터입니다. 출력 형식은 항상yyyy-mm-dd그러니까 최소 11바이트를 할당해야 합니다( 0바이트 종결자)를 사용합니다.
메이저 토토 사이트 성공 시 0을 반환하고 음수 값을 반환합니다. 오류가 발생한 경우.
ECPG의 구현은 다음과 다릅니다.인포믹스구현. 에서인포믹스형식 환경 변수 설정에 따라 영향을 받을 수 있습니다. 에서 그러나 ECPG에서는 출력 형식을 변경할 수 없습니다.
rstrdate날짜의 텍스트 표현을 분석합니다.
int rstrdate(char *str, 날짜 *d);
함수는 다음의 텍스트 표현을 받습니다.
변환할 날짜(str) 및
날짜 유형의 변수에 대한 포인터(d). 이 기능은 다음을 허용하지 않습니다.
형식 마스크를 지정합니다. 기본 형식 마스크를 사용합니다.인포믹스이것은mm/dd/yyyy. 내부적으로는 이
함수는 다음을 통해 구현됩니다.rdefmtdate. 그러므로rstrdate더 빠르지 않으며
당신이 선택해야 할 선택rdefmtdate다음을 지정할 수 있습니다.
형식 마스크를 명시적으로 지정합니다.
함수는 다음과 동일한 값을 반환합니다.rdefmtdate.
r오늘현재 날짜를 가져옵니다.
void rtoday(date *d);
메이저 토토 사이트 날짜 변수에 대한 포인터를 받습니다. (d) 현재로 설정됩니다. 날짜.
내부적으로 이 함수는 다음을 사용합니다.PGTYPESdate_today함수.
rjulmdy일, 월, 연도 값 추출 날짜 유형의 변수에서.
int rjulmdy(date d, short mdy[3]);
메이저 토토 사이트 날짜를 수신합니다d및 3개의 짧은 배열에 대한 포인터 정수 값mdy. 변수 이름은 순차적 순서를 나타냅니다.mdy[0]숫자를 포함하도록 설정됩니다 이달의,mdy[1]설정될 것입니다 오늘의 가치에 맞게mdy[2]연도가 포함됩니다.
함수는 현재 항상 0을 반환합니다.
함수는 내부적으로 다음을 사용합니다.PGTYPESdate_julmdy함수.
rdefmtdate형식 마스크를 사용하여 문자열을 날짜 유형의 값입니다.
int rdefmtdate(date *d, char *fmt, char *str);
함수는 날짜 값에 대한 포인터를 받습니다. 작업 결과를 보유해야 합니다(d), 구문 분석에 사용할 형식 마스크 날짜(fmt) 및 C 문자* 날짜의 텍스트 표현을 포함하는 문자열 (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(date d, char *fmt, char *str);
메이저 토토 사이트 변환할 날짜를 받습니다 (d), 형식 마스크(fmt) 및 날짜의 텍스트 표현(str).
성공 시 0이 반환되며 다음과 같은 경우 음수 값이 반환됩니다. 오류가 발생했습니다.
내부적으로 이 함수는 다음을 사용합니다.PGTYPESdate_fmt_asc함수, 참조
예를 보려면 거기에 있는 참조를 참조하세요.
rmdyjul3개의 짧은 정수 배열에서 날짜 값 생성 일, 월, 연도를 지정하는 것입니다. 날짜.
int rmdyjul(short 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, 타임스탬프 *ts);
메이저 토토 사이트 구문 분석할 문자열을 받습니다(str) 및 타임스탬프에 대한 포인터 작업 결과를 보관해야 하는 변수 (ts).
메이저 토토 사이트 성공 시 0을 반환하고 음수 값을 반환합니다. 오류가 발생한 경우.
내부적으로 이 함수는 다음을 사용합니다.PGTYPEStimestamp_from_asc함수.
예제가 포함된 표는 해당 참조를 참조하세요.
입력.
dtcvfmtasc텍스트 표현에서 타임스탬프를 구문 분석합니다. 타임스탬프 변수에 형식 마스크를 사용합니다.
dtcvfmtasc(char *inbuf, char *fmtstr, 타임스탬프 *dtvalue)
메이저 토토 사이트 구문 분석할 문자열을 받습니다(inbuf), 사용할 형식 마스크(fmtstr) 및 타임스탬프에 대한 포인터 작업 결과를 보관해야 하는 변수 (dt값).
이 기능은 다음을 통해 구현됩니다.PGTYPEStimestamp_defmt_asc함수. 목록은 해당 문서를 참조하세요.
사용할 수 있는 형식 지정자입니다.
메이저 토토 사이트 성공 시 0을 반환하고 음수 값을 반환합니다. 오류가 발생한 경우.
dtsub한 타임스탬프를 다른 타임스탬프에서 빼고 다음을 반환합니다. 유형 간격의 변수입니다.
int dtsub(타임스탬프 *ts1, 타임스탬프 *ts2, 간격 *iv);
메이저 토토 사이트 타임스탬프 변수를 뺄 것입니다.ts2타임스탬프를 가리킵니다. 변수 그ts1다음을 가리키며 결과를 간격 변수에 저장합니다.iv다음을 가리킨다.
성공하면 메이저 토토 사이트 0과 음수를 반환합니다. 오류가 발생한 경우 값입니다.
dttoasc타임스탬프 변수를 C char* 문자열로 변환합니다.
int dttoasc(timestamp *ts, char *output);
메이저 토토 사이트 타임스탬프에 대한 포인터를 받습니다. 변환할 변수(ts) 및 작업 결과를 보유해야 하는 문자열 (출력). 변환합니다ts텍스트 표현에 따라 SQL 표준에 따라야 합니다.YYYY-MM-DD HH:MM:SS.
성공하면 메이저 토토 사이트 0과 음수를 반환합니다. 오류가 발생한 경우 값입니다.
dttofmtasc다음을 사용하여 타임스탬프 변수를 C 문자*로 변환합니다. 형식 마스크.
int dttofmtasc(timestamp *ts, char *output, int str_len, char *fmtstr);
메이저 토토 사이트 타임스탬프에 대한 포인터를 수신합니다. 첫 번째 인수로 변환합니다(ts), 출력 버퍼에 대한 포인터 (출력), 최대 길이 출력 버퍼()에 할당된str_len) 및 사용할 형식 마스크 전환(fmtstr).
성공하면 메이저 토토 사이트 0과 음수를 반환합니다. 오류가 발생한 경우 값입니다.
내부적으로 이 함수는 다음을 사용합니다.PGTYPEStimestamp_fmt_asc함수.
형식에 대한 정보는 해당 참조를 참조하세요.
마스크 지정자를 사용할 수 있습니다.
intoas간격 변수를 C char* 문자열로 변환합니다.
int intoasc(간격 *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및 출력 버퍼에 대한 포인터아웃버프. 그것은 긴 것을 변환합니다 텍스트 형식 마스크에 따른 값 표현.
형식 마스크는 다음으로 구성될 수 있습니다 문자를 지정하는 형식:
*(별표) - 이 경우 그렇지 않으면 위치가 비어 있습니다. 별표.
&(앰퍼샌드) - 경우 그렇지 않으면 이 위치는 비어 있습니다. 0입니다.
#- 선행 0을 바꿉니다. 공백으로.
<- 왼쪽 맞춤 문자열의 숫자입니다.
,(쉼표) - 그룹 번호 4자리 이상의 숫자를 3자리 그룹으로 묶음 쉼표로 구분됩니다.
.(마침표) - 이 문자는 정수 부분을 구분합니다. 분수 부분의 숫자입니다.
-(마이너스) - 마이너스 숫자가 음수이면 기호가 나타납니다.
+(더하기) - 더하기 기호 숫자가 양수 값이면 나타납니다.
(- 이는 다음을 대체합니다. 음수 앞에 빼기 기호를 붙입니다. 마이너스 표시가 나타나지 않습니다.
)- 이 캐릭터 마이너스를 대체하고 네거티브 뒤에 인쇄됩니다. 값.
$- 통화 기호.
rupshift문자열을 대문자로 변환합니다.
void rupshift(char *str);
메이저 토토 사이트 문자열에 대한 포인터를 수신하고 모든 소문자를 대문자로 변환합니다.
byleng없이 문자열의 문자 수를 반환합니다. 후행 공백을 계산합니다.
int byleng(char *str, int len);
메이저 토토 사이트 고정 길이 문자열을 기대합니다. 첫 번째 인수(str) 및 두 번째 인수인 길이(len). 중요한 개수를 반환합니다. 문자, 즉 문자가 없는 문자열의 길이입니다. 후행 공백.
ldchar고정 길이 문자열을 Null 종료 문자열에 복사 문자열.
void ldchar(char *src, int len, char *dest);
메이저 토토 사이트 복사할 고정 길이 문자열을 받습니다. (src), 길이(len) 및 대상에 대한 포인터 메모리(대상). 당신은 최소한 예약해야 합니다.len+1문자열에 대한 바이트대상을 가리킨다. 메이저 토토 사이트 최대로 복사합니다.len바이트를 새 위치로 이동합니다. 소스 문자열에는 뒤에 공백이 있음) 널 종결자.
rgetmsgint rgetmsg(int msgnum, char *s, int maxsize);
이 기능은 존재하지만 구현되지 않았습니다. 순간!
rtyalignint rtypalign(int 오프셋, int 유형);
이 기능은 존재하지만 구현되지 않았습니다. 순간!
rtypmsizeint rtypmsize(int 유형, int len);
이 기능은 존재하지만 구현되지 않았습니다. 순간!
rtyp폭int rtypwidth(int sqltype, int sqllen);
이 기능은 존재하지만 구현되지 않았습니다. 순간!
rsetnull변수를 NULL로 설정하세요.
int rsetnull(int t, char *ptr);
함수는 다음을 나타내는 정수를 받습니다. 변수의 유형과 변수 자체에 대한 포인터 이는 C char* 포인터로 캐스팅됩니다.
다음 유형이 존재합니다:
CCHARTYPE- 유형의 변수문자또는문자*
CSHORTTYPE- 유형의 변수짧은 정수
CINTTYPE- 변수의 경우 유형int
CBOOLTYPE- 유형의 변수부울
CFLOATTYPE- 유형의 변수플로트
CLONGTYPE- 유형의 변수긴
CDOUBLETYPE- 유형의 변수더블
CDECIMALTYPE- 유형의 변수십진수
CDATETYPE- 유형의 변수날짜
CDTIMETYPE- 유형의 변수타임스탬프
다음은 이 함수 호출의 예입니다:
$char c[] = "abc "; $short 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). 참고
후자는 char*로 캐스팅되어야 합니다. 기능 보기rsetnull가능한 목록을 보려면
변수 유형.
다음은 이 기능을 사용하는 방법의 예입니다:
$char c[] = "abc "; $short 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로 정의됨(인포믹스정의).