Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/interfaces/ecpg/test/preproc/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 1 kB image not shown  

Quelle  whenever.pgc   Sprache: unbekannt

 
Spracherkennung für: .pgc vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

#include <stdlib.h>

exec sql include ../regression;

exec sql whenever sqlerror sqlprint;

static void print(const char *msg)
{
        fprintf(stderr, "Error in statement '%s':\n", msg);
        sqlprint();
}

static void print2(void)
{
        fprintf(stderr, "Found another error\n");
        sqlprint();
}

static void warn(void)
{
        fprintf(stderr, "Warning: At least one column was truncated\n");
}

int main(void)
{
 exec sql int i;
 exec sql char c[6];

 ECPGdebug(1, stderr);

 exec sql connect to REGRESSDB1;
 exec sql create table test(i int, c char(10));
 exec sql insert into test values(1, 'abcdefghij');

 exec sql whenever sqlwarning do warn();
 exec sql select * into :i, :c from test;
 exec sql rollback;

 exec sql select * into :i from nonexistent;
 exec sql rollback;

 exec sql whenever sqlerror do print("select");
 exec sql select * into :i from nonexistent;
 exec sql rollback;

 exec sql whenever sqlerror call print2();
 exec sql select * into :i from nonexistent;
 exec sql rollback;

 exec sql whenever sqlerror continue;
 exec sql select * into :i from nonexistent;
 exec sql rollback;

 exec sql whenever sqlerror goto error;
 exec sql select * into :i from nonexistent;
 printf("Should not be reachable\n");

 error:
 exec sql rollback;

 exec sql whenever sqlerror stop;
 /* This cannot fail, thus we don't get an exit value not equal 0. */
 /* However, it still test the precompiler output. */
 exec sql select 1 into :i;
 exec sql rollback;
 exit (0);
}

[Dauer der Verarbeitung: 0.16 Sekunden, vorverarbeitet 2026-08-09]