PRO-C versus GCC (V2.0)
Date: Thu, 25 Feb 1993 19:13:36 GMT
Message-ID: <stephane.730667616_at_tdsb-ipx>
The problem is when i try to use an ORACLE PRO-C program, inserting a double or float value into a table, i get a core dumped. The problem is occuring only when i use GCC compiler, no problem with /usr/5bin/CC. I don't know if it depends on the compiler or linker or Precompiler or maybe a compiler switch, linker switch or precompiler switch?
Machine : SPARCstation IPX
OS : SunOS 4.1.2
Version : CC System V
GCC (2.0) PRO-C precompiler 1.3.18.1.1 ORACLE V6.0Ex: Makefile
*****************************************
CC=gcc
CFLAGS=-c -ansi
EXEC=. PCC=$(ORACLE_HOME)/bin/pcc
PCCINC=$(ORACLE_HOME)/c/lib
PCCFLAGS=include=$(PCCINC) ireclen=132 oreclen=132 select_error=no ltype=none host=C mode=ANSI sqlcheck=LIMITED userid=graf/farg
LIBORA=$(ORACLE_HOME)/rdbms/lib/libora.a LIBSQL=$(ORACLE_HOME)/rdbms/lib/libsql.a OSNTAB=$(ORACLE_HOME)/rdbms/lib/osntab.oNETLIBS=$(OSNTAB) $(ORACLE_HOME)/rdbms/lib/libsqlnet.a PCCLIBS=$(LIBPCC) $(LIBSQL) $(LIBOCIC) $(LIBPRO) $(LIBPCC) CLIBS= OBJECTS=testora.o oratest.o
$(EXEC)/testora:$(OBJECTS)
$(CC) $(OBJECTS) -o $(EXEC)/testora $(CLIBS) \ $(LIBSQL) $(NETLIBS) $(LIBORA) testora.o:testora.c $(CC) testora.c $(CFLAGS) oratest.c:oratest.pc $(PCC) iname=oratest.pc $(PCCFLAGS)Ex: Main program
*****************************************
#include <stdio.h>
main ()
{
if (!Ora_Login ())
{
printf ("Login error...\n");
exit (1);
}
Ora_Save ();
exit (0);
}
Ex: PRO-C program
/* GLOBAL VARIABLES */
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR oracleid[20];
VARCHAR var_char[32]; int var_int; double var_double; short var_short;
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA; short Ora_Login ()
{
strcpy (oracleid.arr, "/");
oracleid.len = strlen(oracleid.arr);
EXEC SQL CONNECT :oracleid;
return (TRUE);
}
short Ora_Save ()
{
strncpy (var_char.arr, "TEST", 4);
var_char.len = 4; var_int = 111; var_double = 111.111; var_short = 11;
EXEC SQL WHENEVER SQLERROR GOTO error;
EXEC SQL INSERT INTO GRAF.TEST
(VAR_CHAR, VAR_INT, VAR_DOUBLE, VAR_SHORT) VALUES (:var_char, :var_int, :var_double, :var_short);
EXEC SQL COMMIT WORK; return (TRUE);
error:
return (FALSE);
}
Help Stephane... Received on Thu Feb 25 1993 - 20:13:36 CET