IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

BDD et Serial


Sujet :

Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut BDD et Serial
    Bonjour à tous.

    j'ai un petit soucis de BDD (informix) à vous présenter.

    Je dois insérer des données dans un table contenant un serial, qui par la suite doit me servir dans une autre table.

    Plusieurs personnes pourraient insérer en même temps, donc exit le 'select max', J'ai bien trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LAST_INSERT_ID()
    mais je ne suis pas certain que ce soit correct ni comment m'en servir...

    quelqu'un aurait une solution à me proposer ?

    merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour ceux qui pourraient être intéressé, j'ai trouvé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            IfxQuery1.SQL.Add(' INSERT INTO ***'
                                    +' VALUES (***)';
            IfxQuery1.Prepare;
            IfxQuery1.ExecSQL;
     
            IfxQuery1.SQL.Clear;
            IfxQuery1.SQL.Add('SELECT dbinfo("sqlca.sqlerrd1") from ***');
            IfxQuery1.Open;
            ShowMessage('SERIAL : '+ IfxQuery1.fields[0].AsString);

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour, je ne connaissais pas Informix , par curiosité , j'ai 'googlisé' avec les mots clés Informix+Auto-incrément

    je dirais qu'il suffit de
    a) créer une colonne d'attribut SERIAL (équivalent a un SEQUENCE+Trigger oracle , GENERATOR+Trigger Firebird .....)
    b) lors de l'insert mettre la valeur 0 à la colonne

    un exemple tiré du net

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE teams
      (
         id SERIAL NOT NULL,
         name VARCHAR(70)
      );
     
      -- insert a few rows
      INSERT INTO teams VALUES (0, 'AC Milan');
      INSERT INTO teams VALUES (0, 'Manchester City');
    Données
    id name
    1 AC Milan
    2 Manchester City
    et effectivement , obtenir le dernier SERIAL se fait via la query indiquée

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT dbinfo("sqlca.sqlerrd1") from Teams
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est correct, j'insérais déjà un serial "correct", il me manquait juste la méthode pour récupérer ce serial sans utiliser de SELECT MAX(serial).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Synchronisation données (BDD + Serialization)
    Par magikbibi dans le forum C#
    Réponses: 4
    Dernier message: 13/10/2014, 09h14
  2. stocker resultat checkbox dans BDD avec serialize
    Par mikael2235 dans le forum Langage
    Réponses: 3
    Dernier message: 20/08/2012, 01h21
  3. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo