Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
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 20/10/2007, 13h23   #1
Membre régulier
 
Inscription : novembre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 107
Points : 83
Points : 83
Par défaut [InterBase] Problème avec les champs incrémentables

Bonjour tous le monde
J’ai un problème avec un champs incrémentable sur BDD InterBase
J’ai suivi exactement un tutoriel trouvé Dans le site de Développez mais sa marche pas.
Voilà ma procédure

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* Stored procedures */
CREATE PROCEDURE "PR_CHAUFEUR"
(
  "AVALUE" INTEGER
)
AS
BEGIN EXIT; END ^

ALTER PROCEDURE "PR_CHAUFEUR"
(
  "AVALUE" INTEGER
)
AS
 Begin
 avalue=Gen_Id(GN_CHAUFEUR,0);
 end
 ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
Code delphi :
1
2
3
4
5
6
7
8
procedure TMDD.IB_ChauffeurBeforePost(DataSet: TDataSet);
begin
if (IB_Chauffeur.State=dsInsert) then
Begin
IBStoredProc1.ExecProc;
IB_Chauffeur.FieldByName('NumChauf').AsInteger:=IBStoredProc1.FieldByName('AVALUE').AsInteger;
end;
end;

L’erreur qui m’affiche est comme suit :
Champ Avalue non trouvé

Ya t’il un problème sur ce que j’ai fait
ProgD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 13h43   #2
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 760
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 760
Points : 6 790
Points : 6 790
Salut

Ta PS, telle que tu l'as définie, ne renvoie aucune donnée.
Elle aurait pu être écrite ainsi:
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
SET TERM ^;
CREATE PROCEDURE PR_CHAUFEUR
RETURNS (
  AVALUE INTEGER
  )
AS
BEGIN
  AVALUE = GEN_ID(GN_CHAUFEUR, 1); -- 1 pour incrémenter la valeur
  SUSPEND;
END
^
SET TERM ;^

Mais si la finalité est d'attribuer une valeur à ton Champ NumChauf, une simple requête aurait suffit (à la place d'une PS):
Avec un IBSQL par exemple:
Code SQL :
1
2
 
  SELECT GEN_ID(GN_CHAUFEUR, 1) FROM RDB$DATABASE;

Ensuite ton code BeforePost devrait fonctionner.

Hors sujet: il y a 2 f à chauffeur.

@+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 08h58   #3
Membre régulier
 
Inscription : novembre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 107
Points : 83
Points : 83
Je n'est pas compris ? c'est quoi sa RDB$DATABASE
ProgD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 09h06   #4
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 760
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 49
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 760
Points : 6 790
Points : 6 790
Salut

RDB$DATABASE est une table système qui ne possède qu'un seul enregistrement, et est souvent sollicité sur des instructions select de ce genre.

C'est en fait une simple astuce.

@+ Claudius
__________________
A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.
Cl@udius est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h51   #5
Membre régulier
 
Inscription : novembre 2006
Messages : 107
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 107
Points : 83
Points : 83
Ma May Sa marche
je vous remercie beaucoup pour votre aide précieuse Claudious
A+
ProgD 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 11h50.


 
 
 
 
Partenaires

Hébergement Web