많은 경우, 애플리케이션이 실행해야 하는 특정 스포츠 토토 결과 문은 애플리케이션이 작성되는 시점에 알려져 있습니다. 그러나 어떤 경우에는 스포츠 토토 결과 문이 런타임 시 구성되거나 외부 소스에 의해 제공됩니다. 이러한 경우 스포츠 토토 결과 문을 C 소스 코드에 직접 포함할 수는 없지만 문자열 변수에 제공하는 임의의 스포츠 토토 결과 문을 호출할 수 있는 기능이 있습니다.
임의의 스포츠 토토 결과 문을 실행하는 가장 간단한 방법은 다음 명령을 사용하는 것입니다.즉시 실행. 예를 들면:
EXEC 스포츠 토토 결과 시작 선언 섹션; const char *stmt = "CREATE TABLE test1 (...);"; EXEC 스포츠 토토 결과 END 선언 섹션; EXEC 스포츠 토토 결과 실행 즉시 :stmt;
즉시 실행결과 세트를 반환하지 않는 스포츠 토토 결과 문에 사용할 수 있습니다(예: DDL,삽입, 업데이트, 삭제). 데이터를 검색하는 문(예:선택) 이쪽으로. 다음 섹션에서는 그 방법을 설명합니다.
임의의 스포츠 토토 결과 문을 실행하는 더 강력한 방법은 스포츠 토토 결과 문을 한 번 준비하고 준비된 문을 원하는 만큼 자주 실행하는 것입니다. 일반화된 버전의 명령문을 준비한 다음 매개변수를 대체하여 특정 버전을 실행할 수도 있습니다. 명령문을 준비할 때 나중에 매개변수를 대체할 곳에 물음표를 작성하세요. 예를 들면:
EXEC 스포츠 토토 결과 시작 선언 섹션; const char *stmt = "test1 VALUES(?, ?)에 삽입;"; EXEC 스포츠 토토 결과 END 선언 섹션; EXEC 스포츠 토토 결과 준비 mystmt FROM :stmt; ... EXEC 스포츠 토토 결과 EXECUTE mystmt USING 42, 'foobar';
준비된 명령문이 더 이상 필요하지 않으면 할당을 해제해야 합니다:
EXEC 스포츠 토토 결과 DEALLOCATE PREPARE이름;
단일 결과 행으로 스포츠 토토 결과 문을 실행하려면,실행사용할 수 있습니다. 결과를 저장하려면를 추가하세요.INTO절.
EXEC 스포츠 토토 결과 시작 선언 섹션; const char *stmt = "test1에서 a, b, c를 선택하세요. WHERE a ?"; int v1, v2; VARCHAR v3[50]; EXEC 스포츠 토토 결과 END 선언 섹션; EXEC 스포츠 토토 결과 준비 mystmt FROM :stmt; ... EXEC 스포츠 토토 결과 EXECUTE mystmt INTO :v1, :v2, :v3 USING 37;
안실행명령은 다음을 가질 수 있습니다.INTO절, a사용 중절, 둘 다 또는 둘 다 아님.
쿼리가 하나 이상의 결과 행을 반환할 것으로 예상되는 경우 다음 예와 같이 커서를 사용해야 합니다. (참조섹션 35.3.2커서에 대한 자세한 내용을 확인하세요.)
EXEC 스포츠 토토 결과 시작 선언 섹션;
char dbaname[128];
char 데이터이름[128];
char *stmt = "dbaname, d.datname으로 u.usename 선택"
" pg_database d, pg_user u "에서
" d.datdba = u.usesysid";
EXEC 스포츠 토토 결과 END 선언 섹션;
EXEC 스포츠 토토 결과 CONNECT TO testdb AS con1 USER testuser;
EXEC 스포츠 토토 결과 SELECT pg_catalog.set_config('search_path', '', false); EXEC 스포츠 토토 결과 커밋;
EXEC 스포츠 토토 결과 준비 stmt1 FROM :stmt;
EXEC 스포츠 토토 결과 DECLARE 커서1 CURSOR FOR stmt1;
EXEC 스포츠 토토 결과 OPEN 커서1;
EXEC 스포츠 토토 결과을 찾을 수 없을 때 중단하십시오.
동안 (1)
EXEC 스포츠 토토 결과 FETCH 커서1 INTO :dbaname,:datname;
printf("dbaname=%s, datname=%s\n", dbaname, datname);
EXEC 스포츠 토토 결과 CLOSE 커서1;
EXEC 스포츠 토토 결과 커밋;
EXEC 스포츠 토토 결과 모두 연결 해제;
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.