C/Visual C - Problema al compilar Pro*C

 
Vista:

Problema al compilar Pro*C

Publicado por jaldonfer (5 intervenciones) el 08/08/2008 13:46:43
Hola a todos:

Hasta ayer, nunca había trabajado con Pro*C, pero despues de leer manuales y mirar en internet, creo que entiendo cual es el proceso que conlleva el trabajar con Pro*C.

- Se escribe un archivo con la sintaxis de Pro*c y se guarda como .pc

- Seguidamente se precompila con el comando 'proc' ( hasta el momento he probado en Windows XP y en UNIX y me ha funcionado ), . . . y una vez compilado se genera un archivo con el mismo nombre, pero con extension .c

- Luego entiendo que es cuestión de compilar con cc ( UNIX ) ó con cl ( WINDOWS ) y ya estaría. ( Digo entiendo, puesto que hasta el momento no he conseguido compilar lo que el compilardor de Pro*C me genera. el mensaje de error que me en el compilador 'cc' es el siguiente:

cc: '/home/test/Asignacion/SQL/include/sqlcpr.h', line 66: warning 573: Parameter list is inconsistent for 'sqliem'.
/usr/ccs/bin/ld: Unsatisfied symbols:
sqlglm (first referenced in Test.o) (code)
sqlcxt (first referenced in Test.o) (code)

//-------------------------------------------------------------------------------------------------
El codigo que he puesto en el fichero .pc es el siguiente:

#include 'stdio.h'
#include 'stdlib.h'
#include 'string.h'

EXEC SQL INCLUDE sqlca;
EXEC SQL WHENEVER SQLERROR DO sql_error();
void sql_error() {
char msg[200];
size_t buf_len, msg_len;
buf_len = sizeof (msg);
sqlglm(msg, &buf_len, &msg_len);
printf('%.*snn', msg_len, msg);
exit(1);
}
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
char username[] = 'test/test@test';
SQL_CURSOR pet_cursor;
int i_v_dummy1;
char c_v_dummy2[5];
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT :username;
printf('nConectado a ORACLEn');

/* EXEC SQL ALLOCATE :pet_cursor; // Constructor - ALLOCATE Cursor.
printf('nLlamando a bloque PL/SQL:n');
EXEC SQL EXECUTE
BEGIN
select (2+2) as SUMA from dual;
END;
END-EXEC;*/

exit(0);
}
//-------------------------------------------------------------------------------------------------

Le he ido quitando codigo para ver si conseguía compilarlo, pero creo que con el que se muestra ahí, ya debería de ser suficiente, no ?

Alguien sabe por donde podrían ir los tiros ?
sqlglm (first referenced in Test.o) (code)
sqlcxt (first referenced in Test.o) (code)

Muchas Gracias y Saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema al compilar Pro*C

Publicado por Tom (619 intervenciones) el 11/08/2008 09:22:56
Bueno, está claro que te falta linkar con alguna librería de Oracle.
Las funciones que no encuentras están, muy posiblemente, en la libclntsh.so
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al compilar Pro*C

Publicado por jaldonfer (5 intervenciones) el 11/08/2008 12:27:28
Hola:

perdona mi ignorancia, pero me podrías decir como se hace eso ?

Muchas gracias y Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al compilar Pro*C

Publicado por jaldonfer (5 intervenciones) el 11/08/2008 12:54:06
Hola de nuevo:

Creo que he avanzado un poco, pero no acabo de entender porqué no me compila correctamente.

He buscado la librería que me indicabas en el anterior mensaje y posteriormente desde la shell he ejecutado el siguiente comando: ( simplemente quiero que me compile . . )

cc Test.c -llibclntsh.so -L/u00/app/oracle/product/10.2.0/lib

y me da la siguiente salida:

cc: "/home/jaldonza/Asignacion/SQL/include/sqlcpr.h", line 66: warning 573: Parameter list is inconsistent for "sqliem".
/usr/ccs/bin/ld: Can't find library: "libclntsh.so"

Ya que solamente es un warning, ejecuto el "a.out" que ha generado el compilador y me ocurre lo siguiente:

Usuario:tp ( El propio programa me pide el usuario . . . )
Clave:tp ( El propio programa me pide la clave . . . )
/usr/lib/dld.sl: Unresolved symbol: orlon (code) from a.out
Abort(coredump)


Ayuda por favor !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al compilar Pro*C

Publicado por Tom (619 intervenciones) el 11/08/2008 15:54:55
Tienes problemas, o bien con el compilador, o bien con las librerías de Oracle, me temo.

De todos modos sería -lclntsh (sin el lib inicial) revisa la documentación del compilador.

Y, la función sqliem me es totalmente desconocida ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al compilar Pro*C

Publicado por ChetosBar (1 intervención) el 10/04/2009 01:38:43
Como le haces para instalar el proc en el linux ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema al compilar Pro*C

Publicado por jaldonfer (5 intervenciones) el 10/04/2009 17:23:43
El codigo escrito en Pro*C, se compila con el precompilador "proc" que se instala cuando instalas Oracle.

No Es necesario instalarlo ó por lo menos a mi no me ha hecho falta instslarlo nunca.

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar