36.5. 동적 사설 토토 사이트

대부분의 경우 응용 프로그램이 작성된 시점에 응용 프로그램이 실행 해야하는 특정 사설 토토 사이트 문이 알려져 있습니다. 그러나 경우에 따라 사설 토토 사이트 문은 실행 시간에 구성되거나 외부 소스에 의해 제공됩니다. 이 경우 사설 토토 사이트 문을 C 소스 코드에 직접 포함시킬 수는 없지만 문자열 변수에서 제공하는 임의의 사설 토토 사이트 문을 호출 할 수있는 시설이 있습니다..

36.5.1. 결과 세트없이 진술 실행

임의의 사설 토토 사이트 문을 실행하는 가장 간단한 방법은 명령을 사용하는 것입니다즉시 실행. 예를 들어:

exec 사설 토토 사이트 시작 선언 섹션;
const char *stmt = "생성 테이블 테스트 1 (...);";
Exec 사설 토토 사이트 END DELLARE SECTION;

exec 사설 토토 사이트 즉시 실행 : stmt;

즉시 실행결과 세트를 반환하지 않는 사설 토토 사이트 문에 사용할 수 있습니다 (예 : DDL,삽입, 업데이트, 삭제). 데이터를 검색하는 진술을 실행할 수 없습니다 (예 :select)이 방법. 다음 섹션에서는 그렇게하는 방법에 대해 설명합니다.

36.5.2. 입력 매개 변수로 명령문 실행

임의의 사설 토토 사이트 문을 실행하는보다 강력한 방법은 한 번 준비하고 원하는대로 자주 준비한 문을 실행하는 것입니다. 일반화 된 버전의 명령문을 준비한 다음 매개 변수를 대체하여 특정 버전을 실행할 수도 있습니다. 진술을 준비 할 때 나중에 매개 변수를 대체 할 위치에 대한 물음표를 작성하십시오. 예를 들어:

Exec 사설 토토 사이트 시작 선언 섹션;
const char *stmt = "test1 값 (?,?)에 삽입;";
Exec 사설 토토 사이트 END DELLARE SECTION;

Exec 사설 토토 사이트 준비 mystmt : stmt;
 ...
Exec 사설 토토 사이트 42, 'foobar';을 사용하여 Mystmt를 실행합니다.

더 이상 준비된 진술이 필요하지 않은 경우 다음을 처리해야합니다.

Exec 사설 토토 사이트 거래 준비이름;

36.5.3. 결과 세트로 진술 실행

단일 결과 행이있는 사설 토토 사이트 문을 실행하려면execute사용할 수 있습니다. 결과를 저장하려면 AT 추가in절.

Exec 사설 토토 사이트 시작 선언 섹션;
const char *stmt = "test1에서 a, b, c를 선택하여 a?";
int v1, v2;
Varchar V3 [50];
Exec 사설 토토 사이트 END DELLARE SECTION;

Exec 사설 토토 사이트 준비 mystmt : stmt;
 ...
exec 사설 토토 사이트 MystMt Execute mystmt : v1, : v2, : v3 사용 37;

anexecute명령은를 가질 수 있습니다.in절, A사용조항, 둘 다 또는 둘 다.

쿼리가 둘 이상의 결과 행을 반환 할 것으로 예상되면 다음 예제에서와 같이 커서를 사용해야합니다. (보다섹션 36.3.2커서에 대한 자세한 내용은.)

Exec 사설 토토 사이트 시작 선언 섹션;
Char Dbaname [128];
char datname [128];
char *stmt = "u.useName as dbaname, d.datname을 선택하십시오"
             "pg_database d, pg_user u에서"
             "여기서 d.datdba = u.usesysid";
Exec 사설 토토 사이트 END DELLARE SECTION;

EXEC 사설 토토 사이트 TestDB에 CON1 사용자 테스트를 사용합니다.
Exec 사설 토토 사이트 선택 PG_CATALOG.SET_CONFIG ( 'search_Path', '', False); Exec 사설 토토 사이트 커밋;

Exec 사설 토토 사이트 STMT1 준비 : STMT;

STMT1에 대한 exec 사설 토토 사이트 선언 cursor1 커서;
Exec 사설 토토 사이트 Open Cursor1;

찾을 수 없을 때마다 Exec 사설 토토 사이트이 중단됩니다.

동안 (1)

    exec 사설 토토 사이트은 cursor1을 가져옵니다 : dbaname, : datname;
    printf ( "dbaname =%s, datname =%s \ n", dbaname, datname);

Exec 사설 토토 사이트 Close cursor1;

Exec 사설 토토 사이트 커밋;
EXEC 사설 토토 사이트 모든 분리;

정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면