Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 18/07/2006, 10h44   #1
Membre régulier
 
Avatar de sondo
 
Inscription : août 2004
Messages : 432
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 432
Points : 83
Points : 83
Envoyer un message via MSN à sondo Envoyer un message via Yahoo à sondo Envoyer un message via Skype™ à sondo
Par défaut Champ d'une table autoincrémenté

Bonjour,

Je viens de lire Ce tutoriel.
Mais j'avoue que j'ai éssayé mais je n'arrive pas à créer un champ auotoincrémenté.
J'ai utilisé ce bout de code sous Interbase pour créer ma table
Code :
1
2
3
4
5
6
7
8
9
10
 
CREATE TABLE Scolarite
(
CodeSco INTEGER IDENTITY(1,1) NOT NULL,
Mate Integer NOT NULL,
Montant Numeric(6,0),
DateSco TimeStamp,
AnneeSco Varchar(10) NOT NULL,
Constraint PK_Scolarite PRIMARY KEY(CodeSco)
);
A l'exécution, voici l'erreur :
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 3, char 17.
IDENTITY.
Pouvez-vous m'aider?
Merci.
sondo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 11h10   #2
Membre régulier
 
Avatar de sondo
 
Inscription : août 2004
Messages : 432
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 432
Points : 83
Points : 83
Envoyer un message via MSN à sondo Envoyer un message via Yahoo à sondo Envoyer un message via Skype™ à sondo
Je me suis trompé, il s'agit d'un code pour sql server.
J'ai tenter ceci sous interbase à présent :
Code :
CREATE GENERATOR Ordre TO 1
il ya une erreur :
Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 24
TO
Statement: CREATE GENERATOR Ordre TO 1.
sondo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2006, 23h00   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 26
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 26
Points : 11
Points : 11
Salut,

je vais tenter une réponse, sur un essai que j'ai réalisé semaine passé.

Comme toi, j'ai créé une table appelant une générateur type

Code :
1
2
3
4
5
 
CREATE TABLE toto (
num integer,
nom varchar(50),
...)
ou num doit s'incrémenter automatiquement.

Ensuite, j'ai créé un générateur pour pouvoir le faire. Exemple

Code :
1
2
3
 
 
CREATE generator inc_num
Enfin pour executer l'incrementation, il m'a fallu crée un trigger, type

Code :
1
2
3
4
5
6
7
8
 
 
SET TERM !! ;
CREATE TRIGGER inc_num_auto FOR toto
BEFORE INSERT AS
BEGIN
    new.num = gen_id(inc_num, 1);
END !!
Ensuite, il ne te reste plus qu'à inserer des lignes en remplissant les valeurs autre que celui du champ qui s'auto incrémente

Code :
1
2
 
INSERT INTO  toto (nom,...) VALUES (myname,...)
c'est magique ...


voila, j'espère t'voir aiguillé un peu sur une bonne piste. Cela fonctionne chez mon avec Interbase 6.
Par contre, mon but est de faire un prog en delphi, mais le trigger ne fonctionne, ou du moins, je n'ai pas trouvé le truc pour le faire fonctionner.

Bonne chance,

William
william_58 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 13h18   #4
Rédacteur
 
Inscription : janvier 2004
Messages : 2 123
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : janvier 2004
Messages : 2 123
Points : 1 977
Points : 1 977
Salut

Si vous souhaitez plus d'info, vous pouvez regardez la FAQ interbase/firebird : http://interbase.developpez.com/faq/

L'utilisation des générateurs y est notamment détaillée.

A bientôt,
__________________
Ancien pseudo : yobenzen

Recherche un emploi de Chef de Projet ou Développeur en Normandie
Delphi/Oracle/Interbase
Migration vers symfony

CV :
- LinkedIn
- Viadeo
Benjamin GAGNEUX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 13h32   #5
Membre régulier
 
Avatar de sondo
 
Inscription : août 2004
Messages : 432
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 432
Points : 83
Points : 83
Envoyer un message via MSN à sondo Envoyer un message via Yahoo à sondo Envoyer un message via Skype™ à sondo
Merci pour l'astuce. J'ai pu créer le génarateur et le trigger.
Mais quand je veux faire une insertion, delphi demande que le champ autoincrémté doit avoir une valeur.
Pourquoi ?.
sondo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 18h42   #6
Futur Membre du Club
 
Homme
Développeur informatique
Inscription : mai 2006
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2006
Messages : 30
Points : 18
Points : 18
Bonjour

J'avais un problème semblable

http://www.developpez.net/forums/sho...d.php?t=150663
uluru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 20h11   #7
Membre régulier
 
Avatar de sondo
 
Inscription : août 2004
Messages : 432
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 432
Points : 83
Points : 83
Envoyer un message via MSN à sondo Envoyer un message via Yahoo à sondo Envoyer un message via Skype™ à sondo
Merci d'avoir partagé ton expérience avec moi.
Bon courage.
sondo 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 04h52.


 
 
 
 
Partenaires

Hébergement Web