diff options
Diffstat (limited to 'src/interfaces/ecpg/lib')
-rw-r--r-- | src/interfaces/ecpg/lib/descriptor.c | 15 | ||||
-rw-r--r-- | src/interfaces/ecpg/lib/dynamic.c | 22 |
2 files changed, 29 insertions, 8 deletions
diff --git a/src/interfaces/ecpg/lib/descriptor.c b/src/interfaces/ecpg/lib/descriptor.c new file mode 100644 index 00000000000..09815b2d103 --- /dev/null +++ b/src/interfaces/ecpg/lib/descriptor.c @@ -0,0 +1,15 @@ +#include <ecpgtype.h> +#include <ecpglib.h> + +bool +ECPGget_desc_header(int lineno, char * desc_name, int *count) +{ + PGresult *ECPGresult = ECPGresultByDescriptor(lineno, desc_name); + + if (!ECPGresult) + return false; + + *count = PQnfields(ECPGresult); + ECPGlog("ECPGget-desc_header: found %d sttributes.\n", *count); + return true; +} diff --git a/src/interfaces/ecpg/lib/dynamic.c b/src/interfaces/ecpg/lib/dynamic.c index 752c02cfc0d..b66883b934a 100644 --- a/src/interfaces/ecpg/lib/dynamic.c +++ b/src/interfaces/ecpg/lib/dynamic.c @@ -2,7 +2,7 @@ * * Copyright (c) 2000, Christof Petig <christof.petig@wtal.de> * - * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/dynamic.c,v 1.2 2000/02/17 19:48:41 meskes Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/dynamic.c,v 1.3 2000/02/18 14:34:05 meskes Exp $ */ /* I borrowed the include files from ecpglib.c, maybe we don't need all of them */ @@ -211,11 +211,15 @@ bool ECPGdo_descriptor(int line,const char *connection, PGresult *ECPGresultByDescriptor(int line,const char *name) { struct descriptor *i; - for (i=all_descriptors;i!=NULL;i=i->next) - { if (!strcmp(name,i->name)) return i->result; + + for (i = all_descriptors; i != NULL; i = i->next) + { + if (!strcmp(name, i->name)) return i->result; } + ECPGraise(line,ECPG_UNKNOWN_DESCRIPTOR); - return 0; + + return NULL; } @@ -248,10 +252,12 @@ bool ECPGallocate_desc(int line,const char *name) return true; } -void ECPGraise(int line,int code) -{ sqlca.sqlcode=code; +void ECPGraise(int line, int code) +{ + sqlca.sqlcode=code; switch (code) - { case ECPG_NOT_FOUND: + { + case ECPG_NOT_FOUND: snprintf(sqlca.sqlerrm.sqlerrmc,sizeof(sqlca.sqlerrm.sqlerrmc), "No data found line %d.",line); break; @@ -268,7 +274,7 @@ void ECPGraise(int line,int code) "descriptor index out of range, line %d.",line); break; default: - snprintf(sqlca.sqlerrm.sqlerrmc,sizeof(sqlca.sqlerrm.sqlerrmc), + snprintf(sqlca.sqlerrm.sqlerrmc,sizeof(sqlca.sqlerrm.sqlerrmc), "SQL error #%d, line %d.",code,line); break; } |