Freezystem
Messages postés5Date d'inscriptiondimanche 24 mai 2009StatutMembreDernière intervention 5 septembre 2009
-
24 mai 2009 à 12:10
Bonjour,
Je travail actuellement sur un projet en embedded SQL les deux langages que j'utilise sont le C et le SQL.
Mon projet consiste a créer un programme client permettant de modifier une base de données (dans mon cas un forum).
J'ai donc une table message :
create table message(
idmessage number primary key,
titre varchar(50) not null,
datemsg timestamp default sysdate,
auteur varchar(10) default user,
texte clob not null,
idgroupe number not null references groupe(idgroupe),
msgpere number references message(idmessage) on delete cascade );
et je cherche à en imprimer le contenu via a quelques printf et une poignée d'instructions sql :
EXEC SQL DECLARE liste CURSOR FOR
SELECT idmessage, titre, datemsg, auteur, texte
FROM message
WHERE idgroupe=:chxgrp;
EXEC SQL OPEN liste;
EXEC SQL WHENEVER NOT FOUND DO break; //Casse la boucle infinie lorsque tous les uplets ont été affichés
for (;;) //Boucle infinie de parcours de la liste
{
EXEC SQL FETCH liste INTO :idmessage, :titre, :datemsg, :auteur, :texte;
printf("\nMessage : %03d --------------------------------------------\n\n", idmessage);
printf("Titre: %s\n", titre);
printf("Auteur: %s\n", auteur);
printf("\n%s\n",texte);
printf("-----------------------------------------------ecrit le: %s\n", datemsg);
} //Fin for
EXEC SQL CLOSE liste;
Le problème réside dans le fait que je ne sais pas comment imprimer un variable "clob" et une variable "timestamp"... Sachant qu je les ai préalablement déclarées comme suit :
EXEC SQL BEGIN DECLARE SECTION;
int idgroupe;
int chxgrp=0;
char nomgroupe[30];
int idmessage;
char titre[50];
char datemsg[20]; //ici déclaré en char car "timestamp" n'est pas reconnue comme un type
char auteur[10];
char texte[4000]; //ici déclaré en char car "clob" n'est pas reconnue comme un type
int idgroupe;
int msgpere;
int numnouvmess;
EXEC SQL END DECLARE SECTION;
Je travail avec les librairies suivantes :
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
EXEC SQL INCLUDE sqlca.h;
Si quelqu'un a une idée sur la question... En vous remerciant par avance!