/* 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 "describe.pgc"
#include <stdlib.h>
#include <string.h>
#line 1 "regression.h"
#line 4 "describe.pgc"
#line 1 "sqlda.h"
#ifndef ECPG_SQLDA_H
#define ECPG_SQLDA_H
#ifdef _ECPG_INFORMIX_H
#include "sqlda-compat.h"
typedef struct sqlvar_compat sqlvar_t;
typedef struct sqlda_compat sqlda_t;
#else
#include "sqlda-native.h"
typedef struct sqlvar_struct sqlvar_t;
typedef struct sqlda_struct sqlda_t;
#endif
#endif /* ECPG_SQLDA_H */
#line 5 "describe.pgc"
/* exec sql whenever sqlerror stop ; */
#line 7 "describe.pgc"
sqlda_t *sqlda1, *sqlda2, *sqlda3;
int
main (void )
{
/* exec sql begin declare section */
#line 15 "describe.pgc"
char * stmt1 = "SELECT id, t FROM descr_t2" ;
#line 16 "describe.pgc"
char * stmt2 = "SELECT id, t FROM descr_t2 WHERE id = -1" ;
#line 17 "describe.pgc"
int i , count1 , count2 ;
#line 18 "describe.pgc"
char field_name1 [ 30 ] = "not set" ;
#line 19 "describe.pgc"
char field_name2 [ 30 ] = "not set" ;
/* exec sql end declare section */
#line 20 "describe.pgc"
char msg[128 ];
ECPGdebug(1 , stderr);
strcpy(msg, "connect" );
{ ECPGconnect(__LINE__, 0 , "ecpg1_regression" , NULL, NULL , NULL, 0 );
#line 27 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 27 "describe.pgc"
strcpy(msg, "set" );
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "set datestyle to iso" , ECPGt_EOIT, ECPGt_EORT);
#line 30 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 30 "describe.pgc"
strcpy(msg, "create" );
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "create table descr_t2 ( id serial primary key , t text )" , ECPGt_EOIT, ECPGt_EORT);
#line 33 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 33 "describe.pgc"
strcpy(msg, "insert" );
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'a' )" , ECPGt_EOIT, ECPGt_EORT);
#line 36 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 36 "describe.pgc"
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'b' )" , ECPGt_EOIT, ECPGt_EORT);
#line 37 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 37 "describe.pgc"
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'c' )" , ECPGt_EOIT, ECPGt_EORT);
#line 38 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 38 "describe.pgc"
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "insert into descr_t2 ( id , t ) values ( default , 'd' )" , ECPGt_EOIT, ECPGt_EORT);
#line 39 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 39 "describe.pgc"
strcpy(msg, "commit" );
{ ECPGtrans(__LINE__, NULL, "commit" );
#line 42 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 42 "describe.pgc"
/*
* Test DESCRIBE with a query producing tuples .
* DESCRIPTOR and SQL DESCRIPTOR are NOT the same in
* Informix - compat mode .
*/
strcpy(msg, "allocate" );
ECPGallocate_desc(__LINE__, "desc1" );
#line 51 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 51 "describe.pgc"
ECPGallocate_desc(__LINE__, "desc2" );
#line 52 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 52 "describe.pgc"
strcpy(msg, "prepare" );
{ ECPGprepare(__LINE__, NULL, 0 , "st_id1" , stmt1);
#line 55 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 55 "describe.pgc"
sqlda1 = sqlda2 = sqlda3 = NULL;
strcpy(msg, "describe" );
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id1" ,
ECPGt_descriptor, "desc1" , 1 L, 1 L, 1 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 60 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id1" ,
ECPGt_descriptor, "desc2" , 1 L, 1 L, 1 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 61 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id1" ,
ECPGt_sqlda, &sqlda1, 0 L, 0 L, 0 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 63 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id1" ,
ECPGt_sqlda, &sqlda2, 0 L, 0 L, 0 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 64 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id1" ,
ECPGt_sqlda, &sqlda3, 0 L, 0 L, 0 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 65 "describe.pgc"
if (sqlda1 == NULL)
{
printf("sqlda1 NULL\n" );
exit (1 );
}
if (sqlda2 == NULL)
{
printf("sqlda2 NULL\n" );
exit (1 );
}
if (sqlda3 == NULL)
{
printf("sqlda3 NULL\n" );
exit (1 );
}
strcpy(msg, "get descriptor" );
{ ECPGget_desc_header(__LINE__, "desc1" , &(count1));
#line 86 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 86 "describe.pgc"
{ ECPGget_desc_header(__LINE__, "desc1" , &(count2));
#line 87 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 87 "describe.pgc"
if (count1 != count2)
{
printf("count1 (%d) != count2 (%d)\n" , count1, count2);
exit (1 );
}
if (count1 != sqlda1->sqld)
{
printf("count1 (%d) != sqlda1->sqld (%d)\n" , count1, sqlda1->sqld);
exit (1 );
}
if (count1 != sqlda2->sqld)
{
printf("count1 (%d) != sqlda2->sqld (%d)\n" , count1, sqlda2->sqld);
exit (1 );
}
if (count1 != sqlda3->sqld)
{
printf("count1 (%d) != sqlda3->sqld (%d)\n" , count1, sqlda3->sqld);
exit (1 );
}
for (i = 1 ; i <= count1; i++)
{
{ ECPGget_desc(__LINE__, "desc1" , i,ECPGd_name,
ECPGt_char,(field_name1),(long )30 ,(long )1 ,(30 )*sizeof (char ), ECPGd_EODT);
#line 115 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 115 "describe.pgc"
{ ECPGget_desc(__LINE__, "desc2" , i,ECPGd_name,
ECPGt_char,(field_name2),(long )30 ,(long )1 ,(30 )*sizeof (char ), ECPGd_EODT);
#line 116 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 116 "describe.pgc"
printf("%d\n\tfield_name1 '%s'\n\tfield_name2 '%s'\n\t"
"sqlda1 '%s'\n\tsqlda2 '%s'\n\tsqlda3 '%s'\n" ,
i, field_name1, field_name2,
sqlda1->sqlvar[i-1 ].sqlname.data,
sqlda2->sqlvar[i-1 ].sqlname.data,
sqlda3->sqlvar[i-1 ].sqlname.data);
}
strcpy(msg, "deallocate" );
ECPGdeallocate_desc(__LINE__, "desc1" );
#line 126 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 126 "describe.pgc"
ECPGdeallocate_desc(__LINE__, "desc2" );
#line 127 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 127 "describe.pgc"
free(sqlda1);
free(sqlda2);
free(sqlda3);
{ ECPGdeallocate(__LINE__, 0 , NULL, "st_id1" );
#line 132 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 132 "describe.pgc"
/* Test DESCRIBE with a query not producing tuples */
strcpy(msg, "allocate" );
ECPGallocate_desc(__LINE__, "desc1" );
#line 137 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 137 "describe.pgc"
ECPGallocate_desc(__LINE__, "desc2" );
#line 138 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 138 "describe.pgc"
strcpy(msg, "prepare" );
{ ECPGprepare(__LINE__, NULL, 0 , "st_id2" , stmt2);
#line 141 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 141 "describe.pgc"
sqlda1 = sqlda2 = sqlda3 = NULL;
strcpy(msg, "describe" );
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id2" ,
ECPGt_descriptor, "desc1" , 1 L, 1 L, 1 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 146 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id2" ,
ECPGt_descriptor, "desc2" , 1 L, 1 L, 1 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 147 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id2" ,
ECPGt_sqlda, &sqlda1, 0 L, 0 L, 0 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 149 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id2" ,
ECPGt_sqlda, &sqlda2, 0 L, 0 L, 0 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 150 "describe.pgc"
{ ECPGdescribe(__LINE__, 0 , 0 , NULL, "st_id2" ,
ECPGt_sqlda, &sqlda3, 0 L, 0 L, 0 L,
ECPGt_NO_INDICATOR, NULL , 0 L, 0 L, 0 L, ECPGt_EORT);}
#line 151 "describe.pgc"
if (sqlda1 == NULL || sqlda2 == NULL || sqlda3 == NULL)
exit (1 );
strcpy(msg, "get descriptor" );
{ ECPGget_desc_header(__LINE__, "desc1" , &(count1));
#line 157 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 157 "describe.pgc"
{ ECPGget_desc_header(__LINE__, "desc1" , &(count2));
#line 158 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 158 "describe.pgc"
if (!( count1 == count2 &&
count1 == sqlda1->sqld &&
count1 == sqlda2->sqld &&
count1 == sqlda3->sqld))
exit (1 );
for (i = 1 ; i <= count1; i++)
{
{ ECPGget_desc(__LINE__, "desc1" , i,ECPGd_name,
ECPGt_char,(field_name1),(long )30 ,(long )1 ,(30 )*sizeof (char ), ECPGd_EODT);
#line 168 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 168 "describe.pgc"
{ ECPGget_desc(__LINE__, "desc2" , i,ECPGd_name,
ECPGt_char,(field_name2),(long )30 ,(long )1 ,(30 )*sizeof (char ), ECPGd_EODT);
#line 169 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 169 "describe.pgc"
printf("%d\n\tfield_name1 '%s'\n\tfield_name2 '%s'\n\t"
"sqlda1 '%s'\n\tsqlda2 '%s'\n\tsqlda3 '%s'\n" ,
i, field_name1, field_name2,
sqlda1->sqlvar[i-1 ].sqlname.data,
sqlda2->sqlvar[i-1 ].sqlname.data,
sqlda3->sqlvar[i-1 ].sqlname.data);
}
strcpy(msg, "deallocate" );
ECPGdeallocate_desc(__LINE__, "desc1" );
#line 179 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 179 "describe.pgc"
ECPGdeallocate_desc(__LINE__, "desc2" );
#line 180 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );
#line 180 "describe.pgc"
free(sqlda1);
free(sqlda2);
free(sqlda3);
{ ECPGdeallocate(__LINE__, 0 , NULL, "st_id2" );
#line 185 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 185 "describe.pgc"
/* End test */
strcpy(msg, "drop" );
{ ECPGdo(__LINE__, 0 , 1 , NULL, 0 , ECPGst_normal, "drop table descr_t2" , ECPGt_EOIT, ECPGt_EORT);
#line 190 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 190 "describe.pgc"
strcpy(msg, "commit" );
{ ECPGtrans(__LINE__, NULL, "commit" );
#line 193 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 193 "describe.pgc"
strcpy(msg, "disconnect" );
{ ECPGdisconnect(__LINE__, "CURRENT" );
#line 196 "describe.pgc"
if (sqlca.sqlcode < 0 ) exit (1 );}
#line 196 "describe.pgc"
return 0 ;
}
Messung V0.5 in Prozent C=94 H=92 G=92
¤ 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.0.12Bemerkung:
(vorverarbeitet am 2026-08-10)
¤
*Bot Zugriff