Salut à tous,

J'ai deux table DOSSIER et UTILISATEUR dont voici les champs
TABLE UTILISATEUR
  • US_NO SMALLINT
    US_INIT CHAR(02)
    US_ID VARCHAR(10)

TABLE DOSSIER
  • DS_NO INTEGER
    DS_NUM VARCHAR(10)
    DS_PAR SMALLINT
    ...


Et voici ma procedure qui insert dans DOSSIER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
CREATE PROCEDURE DOSSIER_INSERT (
    DS_NUM VARCHAR(10),
    OPER VARCHAR(10))
RETURNS (
    NUM INTEGER)
AS
DECLARE VARIABLE US_INIT CHAR(2);
DECLARE VARIABLE US_NO  SMALLINT;
BEGIN
  NUM = GEN_ID(GEN_DOSSIER_NO, 1);
  Select US_INIT,US_NO from TUTILISATEUR  where US_ID   = :OPER   into US_INIT, US_NO;
  INSERT INTO TDOSSIER (
    DS_NO,
    DS_NUM,
    DS_PAR)
  VALUES (
    :NUM,
    :DS_NUM,
    :US_NO);
END
Cette ps est incomplet DS_NUM n'est pas renseigné et est possible qu'il doit y avoir des erreur.
En faite, DS_NUM est du style AN000047 qui est la concatenantion de NUM et de US_INIT puis formaté pour que le nombre de lettre après AN soit de 6 (000047).
Actuellement, j'aliment DS_NUM manuellement en faisant la concatenantion sous Delphi.
Y at-il un moyen de le faire dans le ps ?

Merci

COmment puis