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

Quelle  preproc-outofscope.c

  Sprache: C
 

/* Processed by ecpg (regression mode) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))

#line 1 "outofscope.pgc"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>


#line 1 "regression.h"






#line 6 "outofscope.pgc"



#line 1 "pgtypes_numeric.h"
#ifndef PGTYPES_NUMERIC
#define PGTYPES_NUMERIC

#include <pgtypes.h>

#define NUMERIC_POS      0x0000
#define NUMERIC_NEG      0x4000
#define NUMERIC_NAN      0xC000
#define NUMERIC_NULL      0xF000
#define NUMERIC_MAX_PRECISION   1000
#define NUMERIC_MAX_DISPLAY_SCALE  NUMERIC_MAX_PRECISION
#define NUMERIC_MIN_DISPLAY_SCALE  0
#define NUMERIC_MIN_SIG_DIGITS   16

#define DECSIZE 30

typedef unsigned char NumericDigit;
typedef struct
{
 int   ndigits;  /* number of digits in digits[] - can be 0! */
 int   weight;   /* weight of first digit */
 int   rscale;   /* result scale */
 int   dscale;   /* display scale */
 int   sign;   /* NUMERIC_POS, NUMERIC_NEG, or NUMERIC_NAN */
 NumericDigit *buf;   /* start of alloc'd space for digits[] */
 NumericDigit *digits;  /* decimal digits */
} numeric;

typedef struct
{
 int   ndigits;  /* number of digits in digits[] - can be 0! */
 int   weight;   /* weight of first digit */
 int   rscale;   /* result scale */
 int   dscale;   /* display scale */
 int   sign;   /* NUMERIC_POS, NUMERIC_NEG, or NUMERIC_NAN */
 NumericDigit digits[DECSIZE]; /* decimal digits */
} decimal;

#ifdef __cplusplus
extern "C"
{
#endif

numeric    *PGTYPESnumeric_new(void);
decimal    *PGTYPESdecimal_new(void);
void  PGTYPESnumeric_free(numeric *var);
void  PGTYPESdecimal_free(decimal *var);
numeric    *PGTYPESnumeric_from_asc(char *str, char **endptr);
char    *PGTYPESnumeric_to_asc(numeric *num, int dscale);
int   PGTYPESnumeric_add(numeric *var1, numeric *var2, numeric *result);
int   PGTYPESnumeric_sub(numeric *var1, numeric *var2, numeric *result);
int   PGTYPESnumeric_mul(numeric *var1, numeric *var2, numeric *result);
int   PGTYPESnumeric_div(numeric *var1, numeric *var2, numeric *result);
int   PGTYPESnumeric_cmp(numeric *var1, numeric *var2);
int   PGTYPESnumeric_from_int(signed int int_val, numeric *var);
int   PGTYPESnumeric_from_long(signed long int long_val, numeric *var);
int   PGTYPESnumeric_copy(numeric *src, numeric *dst);
int   PGTYPESnumeric_from_double(double d, numeric *dst);
int   PGTYPESnumeric_to_double(numeric *nv, double *dp);
int   PGTYPESnumeric_to_int(numeric *nv, int *ip);
int   PGTYPESnumeric_to_long(numeric *nv, long *lp);
int   PGTYPESnumeric_to_decimal(numeric *src, decimal *dst);
int   PGTYPESnumeric_from_decimal(decimal *src, numeric *dst);

#ifdef __cplusplus
}
#endif

#endif       /* PGTYPES_NUMERIC */

#line 8 "outofscope.pgc"


/* exec sql begin declare section */

#line 1 "struct.h"
 

    
   
       /* dec_t */
   
   

   typedef struct mytype  MYTYPE ;

#line 9 "struct.h"


 

    
    
    
    
    

   typedef struct mynulltype  MYNULLTYPE ;

#line 19 "struct.h"


#line 11 "outofscope.pgc"

struct mytype { 
#line 3 "struct.h"
 int id ;
 
#line 4 "struct.h"
 char t [ 64 ] ;
 
#line 5 "struct.h"
 double d1 ;
 
#line 6 "struct.h"
 double d2 ;
 
#line 7 "struct.h"
 char c [ 30 ] ;
 } ; struct mynulltype { 
#line 13 "struct.h"
 int id ;
 
#line 14 "struct.h"
 int t ;
 
#line 15 "struct.h"
 int d1 ;
 
#line 16 "struct.h"
 int d2 ;
 
#line 17 "struct.h"
 int c ;
 } ;/* exec sql end declare section */
#line 12 "outofscope.pgc"


/* exec sql whenever sqlerror  stop ; */
#line 14 "outofscope.pgc"


/* Functions for test 1 */

static void
get_var1(MYTYPE **myvar0, MYNULLTYPE **mynullvar0)
{
 /* exec sql begin declare section */
     
    
 
#line 22 "outofscope.pgc"
 MYTYPE * myvar = malloc ( sizeof ( MYTYPE ) ) ;
 
#line 23 "outofscope.pgc"
 MYNULLTYPE * mynullvar = malloc ( sizeof ( MYNULLTYPE ) ) ;
/* exec sql end declare section */
#line 24 "outofscope.pgc"


 /* Test DECLARE ... SELECT ... INTO with pointers */

 ECPGset_var( 0, ( myvar ), __LINE__);\
 ECPGset_var( 1, ( mynullvar ), __LINE__);\
 /* declare mycur cursor for select * from a1 */
#line 28 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);
#line 28 "outofscope.pgc"

#line 28 "outofscope.pgc"


 if (sqlca.sqlcode != 0)
  exit(1);

 *myvar0 = myvar;
 *mynullvar0 = mynullvar;
}

static void
open_cur1(void)
{
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "declare mycur cursor for select * from a1", ECPGt_EOIT, 
 ECPGt_int,&((*( MYTYPE  *)(ECPGget_var( 0)) ).id),(long)1,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).id),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_char,&((*( MYTYPE  *)(ECPGget_var( 0)) ).t),(long)64,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).t),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_double,&((*( MYTYPE  *)(ECPGget_var( 0)) ).d1),(long)1,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).d1),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_double,&((*( MYTYPE  *)(ECPGget_var( 0)) ).d2),(long)1,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).d2),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_char,&((*( MYTYPE  *)(ECPGget_var( 0)) ).c),(long)30,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).c),(long)1,(long)1,sizeofstruct mynulltype ), ECPGt_EORT);
#line 40 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 40 "outofscope.pgc"

}

static void
get_record1(void)
{
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "fetch mycur", ECPGt_EOIT, 
 ECPGt_int,&((*( MYTYPE  *)(ECPGget_var( 0)) ).id),(long)1,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).id),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_char,&((*( MYTYPE  *)(ECPGget_var( 0)) ).t),(long)64,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).t),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_double,&((*( MYTYPE  *)(ECPGget_var( 0)) ).d1),(long)1,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).d1),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_double,&((*( MYTYPE  *)(ECPGget_var( 0)) ).d2),(long)1,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).d2),(long)1,(long)1,sizeofstruct mynulltype ), 
 ECPGt_char,&((*( MYTYPE  *)(ECPGget_var( 0)) ).c),(long)30,(long)1,sizeofstruct mytype ), 
 ECPGt_int,&((*( MYNULLTYPE  *)(ECPGget_var( 1)) ).c),(long)1,(long)1,sizeofstruct mynulltype ), ECPGt_EORT);
#line 46 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 46 "outofscope.pgc"

}

static void
close_cur1(void)
{
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "close mycur", ECPGt_EOIT, ECPGt_EORT);
#line 52 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 52 "outofscope.pgc"

}

int
main (void)
{
 MYTYPE  *myvar;
 MYNULLTYPE *mynullvar;
 int loopcount;
 char msg[128];

 ECPGdebug(1, stderr);

 strcpy(msg, "connect");
 { ECPGconnect(__LINE__, 0"ecpg1_regression" , NULL, NULL , NULL, 0); 
#line 66 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 66 "outofscope.pgc"


 strcpy(msg, "set");
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT);
#line 69 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 69 "outofscope.pgc"


 strcpy(msg, "create");
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "create table a1 ( id serial primary key , t text , d1 numeric , d2 float8 , c character ( 10 ) )", ECPGt_EOIT, ECPGt_EORT);
#line 72 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 72 "outofscope.pgc"


 strcpy(msg, "insert");
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "insert into a1 ( id , t , d1 , d2 , c ) values ( default , 'a' , 1.0 , 2 , 'a' )", ECPGt_EOIT, ECPGt_EORT);
#line 75 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 75 "outofscope.pgc"

 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "insert into a1 ( id , t , d1 , d2 , c ) values ( default , null , null , null , null )", ECPGt_EOIT, ECPGt_EORT);
#line 76 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 76 "outofscope.pgc"

 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "insert into a1 ( id , t , d1 , d2 , c ) values ( default , 'b' , 2.0 , 3 , 'b' )", ECPGt_EOIT, ECPGt_EORT);
#line 77 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 77 "outofscope.pgc"


 strcpy(msg, "commit");
 { ECPGtrans(__LINE__, NULL, "commit");
#line 80 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 80 "outofscope.pgc"


 /* Test out-of-scope DECLARE/OPEN/FETCH/CLOSE */

 get_var1(&myvar, &mynullvar);
 open_cur1();

 for (loopcount = 0; loopcount < 100; loopcount++)
 {
  memset(myvar, 0sizeof(MYTYPE));
  get_record1();
  if (sqlca.sqlcode == ECPG_NOT_FOUND)
   break;
  printf("id=%d%s t='%s'%s d1=%f%s d2=%f%s c = '%s'%s\n",
   myvar->id, mynullvar->id ? " (NULL)" : "",
   myvar->t, mynullvar->t ? " (NULL)" : "",
   myvar->d1, mynullvar->d1 ? " (NULL)" : "",
   myvar->d2, mynullvar->d2 ? " (NULL)" : "",
   myvar->c, mynullvar->c ? " (NULL)" : "");
 }

 close_cur1();

 free(myvar);
 free(mynullvar);

 strcpy(msg, "drop");
 { ECPGdo(__LINE__, 01, NULL, 0, ECPGst_normal, "drop table a1", ECPGt_EOIT, ECPGt_EORT);
#line 107 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 107 "outofscope.pgc"


 strcpy(msg, "commit");
 { ECPGtrans(__LINE__, NULL, "commit");
#line 110 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 110 "outofscope.pgc"


 strcpy(msg, "disconnect");
 { ECPGdisconnect(__LINE__, "CURRENT");
#line 113 "outofscope.pgc"

if (sqlca.sqlcode < 0exit (1);}
#line 113 "outofscope.pgc"


 return 0;
}

Messung V0.5 in Prozent
C=95 H=97 G=95

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.