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

Bases de données Delphi Discussion :

FireBird INSERT RETURNING ID


Sujet :

Bases de données Delphi

  1. #1
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut FireBird INSERT RETURNING ID
    Bonjour, je cherche à utiliser ceci dans Delphi :
    INSERT INTO t1 (...) values (...) returning pk;

    PK
    ===========
    32
    sa provient de (fb 2.1) :
    http://www.firebirdfaq.org/faq243/

    Actuellement j'utilise les composants InterBase, j'ai tout essayé avec un TIBQuery c'est impossible. Il y a d'autres moyen je sais pour avoir "pk" mais c'est cette méthode que je voudrais utiliser, quelqu'un la déjà utilisé? Avec quel composants ?

    Merci d'avance pour votre aide.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut oui³
    Citation Envoyé par ouiouioui Voir le message
    ..., quelqu'un la déjà utilisé? Avec quel composants ?
    J'utilise cette méthode régulièrement, mais avec les composants UIB. Je suppose qu'avec les IBX le principe reste exactement le même.

    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
    var
      Qry: TUIBQuery;
    begin
      Qry := TUIBQuery.Create(nil);
      try
        with Qry do
        begin
          Transaction := trWrite;
          SQL.Text := 'INSERT INTO MEMBRE(NOM, PRENOM) ' +
            'VALUES(''Dupontel'', ''Albert'') RETURNING ID;';
          Execute;
          ShowMessage(Format('Nouvel ID: %d', [Fields.AsInt64[0]]));
          Close(etmCommit);
        end;
      finally
        Qry.Free;
      end;
    @+ Claudius.

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Je viens d'effectuer un test avec les composants IBX, et malheureusement la clause RETURNING introduite avec FB2.0 n'est pas supportée.

    Ce qui confirme qu'il faut de plus en plus réserver l'utilisation des IBX pour Interbase et uniquement Interbase.

    @+ Claudius

  4. #4
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    oui, je vais devoir changer de composants d'accès aux données sa ne me réjouit pas

    Merci en tout cas UIB à l'air bien je vais tenter.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,
    Citation Envoyé par ouiouioui Voir le message
    Merci en tout cas UIB à l'air bien je vais tenter.
    Pour Firebird je ne cache pas ma préférence pour les composants UIB, très bien conçus et performants.
    Par contre le seul composant que tu peux relier à un DataSource est le TUIBDataSet. Mais celui-ci est en lecture-seule.

    @+

  6. #6
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut GZFBdataset
    bonjour

    on peux compléter les UIB avec le composant GZFBdataset pour gérer les écritures.

    André

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Il existe effectivement des composants tiers: le GrizzlyPack (TGz*), ou encore l'Alex's FBDataSet disponible chez Progdigy.

    Il faut noté cependant que, sauf erreur, les compos Grizzly ne sont pas compatibles unicode (D2009 et +).

    @+

  8. #8
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut oups
    bonjour

    le GZFBDatastet est compatible D2009 unicode, la branche Unicode du svn

    cordialement

    André

  9. #9
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    Merci pour ces précisions, j'utilise souvent des TIBTable avec TDataSource.
    Si j'utilise juste TUIBQuery pour mes requêtes ayant besoin d'un RETURNING sa suffira peut-être.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut test avec TIBSQL
    Bonjour,

    Pour en revenir au sujet de départ:

    Je tombe sur ce post par hazard, et je découvre que la fonction Returning ne fonctionne pas avec TIBquery.

    Je l'ai implémentée la semaine dernière avec le compo TIBsql et j'ai pas vu de problème ?

    Vous m'avez mis le doute, je refait des essais semaine prochaine.

    Est ce que quelqu'un la déja essayé avec TIBsql ?

    Cordialement

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

Discussions similaires

  1. Procedure stocke et insert returning
    Par xian21 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/08/2009, 14h31
  2. Insert returning - ça existe tu
    Par tommey dans le forum Développement
    Réponses: 4
    Dernier message: 26/02/2009, 17h26
  3. insert returning pk
    Par jose.ignacio.agata dans le forum SQL
    Réponses: 1
    Dernier message: 25/02/2008, 22h20
  4. Insertion à grande échelle dans une BD Firebird 1.5
    Par rprom1 dans le forum Débuter
    Réponses: 4
    Dernier message: 11/02/2006, 17h14
  5. Insert d'un champ caractères spéciaux avec firebird et php
    Par PHILOSOPHE dans le forum Connexion aux bases de données
    Réponses: 1
    Dernier message: 14/05/2005, 11h18

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