Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  variable.pgc   Sprache: unbekannt

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

#include <stdlib.h>
#include <string.h>

exec sql include ../regression;

exec sql whenever sqlerror stop;

exec sql type c is char reference;
typedef char* c;

exec sql type ind is union { int integer; short smallint; };
typedef union { int integer; short smallint; } ind;

#define BUFFERSIZ 8
exec sql type str is varchar[BUFFERSIZ];

exec sql declare cur cursor for
       select name, born, age, married, children from family;

int
main (void)
{
 exec sql struct birthinfo { long born; short age; };
exec sql begin declare section;
 struct personal_struct { str name;
     struct birthinfo birth;
    } personal, *p;
 struct personal_indicator { int ind_name;
     struct birthinfo ind_birth;
      } ind_personal, *i;
 ind ind_children;
 struct t1 { str name; }; struct t2 { str name; };
 static varchar vc1[50], vc2[50], vc3[255];
 static int i1, i2, i3;
exec sql end declare section;

 exec sql char *married = NULL;
 exec sql long ind_married;
 exec sql ind children;
 int loopcount;
 char msg[128];

        ECPGdebug(1, stderr);

 strcpy(msg, "connect");
 exec sql connect to REGRESSDB1;

 strcpy(msg, "set");
 exec sql set datestyle to iso;

 strcpy(msg, "create");
 exec sql create table family(name char(8), born integer, age smallint, married date, children integer);

 strcpy(msg, "insert");
 exec sql insert into family(name, married, children) values ('Mum', '19870714', 3);
 exec sql insert into family(name, born, married, children) values ('Dad', '19610721', '19870714', 3);
 exec sql insert into family(name, age) values ('Child 1', 16);
 exec sql insert into family(name, age) values ('Child 2', 14);
 exec sql insert into family(name, age) values ('Child 3', 9);

 strcpy(msg, "commit");
 exec sql commit;

 strcpy(msg, "open");
 exec sql open cur;

 exec sql whenever not found do break;

 p=&personal;
 i=&ind_personal;
 memset(i, 0, sizeof(ind_personal));
 for (loopcount = 0; loopcount < 100; loopcount++) {
  strcpy(msg, "fetch");
  exec sql fetch cur into :p:i, :married:ind_married, :children.integer:ind_children.smallint;
  printf("%8.8s", personal.name.arr);
  if (i->ind_birth.born >= 0)
   printf(", born %ld", personal.birth.born);
  if (i->ind_birth.age >= 0)
   printf(", age = %d", personal.birth.age);
  if (ind_married >= 0)
   printf(", married %s", married);
  if (ind_children.smallint >= 0)
   printf(", children = %d", children.integer);
  putchar('\n');

  free(married);
  married = NULL;
 }

 strcpy(msg, "close");
 exec sql close cur;

 strcpy(msg, "drop");
 exec sql drop table family;

 strcpy(msg, "commit");
 exec sql commit;

 strcpy(msg, "disconnect");
 exec sql disconnect;

 /* this just to silence unused-variable warnings: */
 vc1.len = vc2.len = vc3.len = 0;
 i1 = i2 = i3 = 0;
 printf("%d %d %d %d %d %d\n",
        vc1.len, vc2.len, vc3.len,
        i1, i2, i3);

 return 0;
}

[Dauer der Verarbeitung: 0.15 Sekunden, vorverarbeitet 2026-08-10]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=434850
#Domains=655579