|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 6 ![]() |
MAJ : en fait il manquait un paramètre de compilation pour proc :
intyp=toto toto etant le fichier de sortie de la commande ott. ------------------------------------------------------- Bonjour, J'utilise Streams AQ et je voudrais faire un prog C pour enqueuer A la compilation j'ai les messages d'erreur suivants : ---------------------------------------------------------------------------------------------------- Semantic error at line 32, column 11, file enqueue.ec: EXEC SQL ALLOCATE :message; ..........1 PCC-S-02319, expression type does not match usage Semantic error at line 37, column 40, file enqueue.ec: EXEC SQL OBJECT SET subject, text OF :message TO :sujetMsg, :texteMsg; .......................................1 PCC-S-02408, Expecting an expression of some Object type --------------------------------------------------------------------------------------------------- Je travaille avec Oracle 10.2.0 Standard edition. Voila le code ora_usertype.h (generated by ott) : --------------------------------- #ifndef USERTYPE_ORACLE # define USERTYPE_ORACLE #ifndef OCI_ORACLE # include <oci.h> #endif typedef OCIRef ydel_typ_ref; struct ydel_typ { OCIString * subject; OCIString * text; }; typedef struct ydel_typ ydel_typ; struct ydel_typ_ind { OCIInd _atomic; OCIInd subject; OCIInd text; }; typedef struct ydel_typ_ind ydel_typ_ind; #endif ------------------------------------------------------------------------------------------- Le programme : #include <stdio.h> #include <sql2oci.h> #include <sqlca.h> #include "ora_usertype.h" int main() { ydel_typ *message=(ydel_typ*)0; ydel_typ_ind *imsg; char sujetMsg[30]; char texteMsg[100]; char *sql_connect = "John/Doe"; EXEC SQL CONNECT :sql_connect; EXEC SQL ALLOCATE :message; strcpy(sujetMsg,"THE SUBJECT"); strcpy(texteMsg,"The message text"); EXEC SQL OBJECT SET subject, text OF :message TO :sujetMsg, :texteMsg; EXEC SQL EXECUTE DECLARE message_properties dbms_aq.message_properties_t; enqueue_options dbms_aq.enqueue_options_t; msgid RAW(16); BEGIN dbms_aq.enqueue(queue_name => 'ydel_queue', message_properties => message_properties, enqueue_options => enqueue_options, payload => :message:imsg, /* indicator must be specified */ msgid => msgid); END; END-EXEC; EXEC SQL COMMIT; return(0); } ------------------------------------------------------------------------------------------------------------------- Le script de compilation : proc parse=full sqlcheck=full userid=john/doe mode=oracle release_cursor= no maxopencursors=30 unsafe_null=yes dbms=V8 dynamic=ansi type_code=ansi code=ansi_c char_map=STRING include=/products/oracle/precomp/public include=/products/oracle/rdbms/public include=/products/oracle/rdbms/demo include=/products/oracle/plsql/public include=/products/oracle/network/public define=ORA iname=$1 oname=$1.c -------------------------------------------------------------------------------------------------------------------- Je n'arrive vraiment pas a trouver pourquoi cette erreur.... Une aide serait grandement utile. Merci Cdlt Yd |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com