aboutsummaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/sql/binary.pgc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/test/sql/binary.pgc')
-rw-r--r--src/interfaces/ecpg/test/sql/binary.pgc27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/interfaces/ecpg/test/sql/binary.pgc b/src/interfaces/ecpg/test/sql/binary.pgc
index 9be73409135..a86aa283b6b 100644
--- a/src/interfaces/ecpg/test/sql/binary.pgc
+++ b/src/interfaces/ecpg/test/sql/binary.pgc
@@ -18,6 +18,7 @@ main (void)
{
EXEC SQL BEGIN DECLARE SECTION;
struct TBempl empl;
+ char *pointer = NULL;
char *data = "\\001\\155\\000\\212";
EXEC SQL END DECLARE SECTION;
int i;
@@ -58,8 +59,6 @@ main (void)
printf ("name=%s, accs=%d byte=%s\n", empl.name, empl.accs, empl.byte);
- memset(empl.name, 0, 21L);
- memset(empl.byte, '#', 20L);
EXEC SQL DECLARE B BINARY CURSOR FOR select name, accs, byte from empl where idnum =:empl.idnum;
EXEC SQL OPEN B;
EXEC SQL FETCH B INTO :empl.name,:empl.accs,:empl.byte;
@@ -73,13 +72,27 @@ main (void)
/* do not print a.accs because big/little endian will have different outputs here */
printf ("name=%s, byte=", empl.name);
- for (i=0; i<20; i++)
- {
- if (empl.byte[i] == '#')
- break;
+ for (i=0; i<4; i++)
printf("(%o)", (unsigned char)empl.byte[i]);
- }
printf("\n");
+
+ EXEC SQL DECLARE A BINARY CURSOR FOR select byte from empl where idnum =:empl.idnum;
+ EXEC SQL OPEN A;
+ EXEC SQL FETCH A INTO :pointer;
+ if (sqlca.sqlcode)
+ {
+ printf ("fetch error = %ld\n", sqlca.sqlcode);
+ exit (sqlca.sqlcode);
+ }
+
+ EXEC SQL CLOSE A;
+
+ printf ("pointer=");
+ for (i=0; i<4; i++)
+ printf("(%o)", (unsigned char)pointer[i]);
+ printf("\n");
+ free(pointer);
+
EXEC SQL disconnect;
exit (0);
}