Bonjou à tous
tout d'abord merci;
voici plus de code,help

char message[120];
int main (int argc, char
**argv)
{
shortnum_dossier;
int num_demande;
int res;
res = table2(
num_dossier );
if ( res )
{
sprintf( message, "erreur sur %d\n",
num_dossier);
msg( SOURCE, 3, NUM_SEQ++, "W",
message );
/* EXEC SQL COMMIT WORK RELEASE; */
return
(ERREUR);
Et pour table2:
short table2( short num_dossier )
{
EXEC
SQL BEGIN DECLARE SECTION;
shorti5;
char table_element[8+1];
char
requete[512];
EXEC
SQL END DECLARE SECTION;
i5
= num_dossier;
EXEC
SQL
select
p99
into
:table_element
from
table99
where
i99fmo71 =
(select
e50fmo71
from table50
where i5 = :i5)
and
i99std99 =
(select
e50std99
from table50
where i5 = :i5);
if
( sqlca.sqlcode ) {
if
( sqlca.sqlcode == 100 ) {
EXEC
SQL rollback;
sprintf(
message, "Nom de la table des elements du dossier %d introuvable",
num_dossier );
msg( SOURCE, 1, NUM_SEQ++, "E", message );
}
else
{
sql_msg(SOURCE,2);
}
return(
ERREUR );
}
strcpy(TAB_ELEMENT,
table_element);/* Mise a jour de la var
globale */
sprintf( requete, "delete %s where i41 = %d
", table_element, num_dossier);
EXEC
SQL EXECUTE IMMEDIATE :requete;
if
( sqlca.sqlcode && (sqlca.sqlcode != 100)) {
sql_msg(SOURCE,3);
return(
ERREUR );
}
EXEC SQL
delete
pegt0040
where
i40 = :i5;
if
( sqlca.sqlcode &&
(sqlca.sqlcode != 100)) {
sql_msg(SOURCE,4);
return(
ERREUR );
}
return(SUCCES);
}