Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Interfaces de programmation
Interfaces de programmation Forum d'entraide sur l'utilisation des API Oracle : Pré-compilateurs, OCI, OCCI, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2007, 17h36   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 2
Points : 2
Par défaut [PRO*C] comp erreur sur object types /AQ / ALLOCATE

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
ydelanoe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h57.


 
 
 
 
Partenaires

Hébergement Web