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

Accès aux données Discussion :

Champ "auto increment"


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 33
    Par défaut Champ "auto increment"
    Slt à tous,

    Quelqu'un saurait-il comment on récupère un champ "auto-increment" lors d'une requete d'insertion dans une table via ADO.NET?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    avec une requête qui va dépendre du SGBD

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 33
    Par défaut
    Elle est où la portabilité sous ADO.NET s'il faut modifier le code pour une fonctionnalité au moins aussi basique que fréquemment utilisée?

    Est ce que je pourrais avoir un exemple sous un SGBDR de ton choix (de préférence Access,SQl Server ou MySQL qui sont installés sur ma machine)?


    Merci pour ta réponse

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Si tu veux de la portabilité, tu ne fais pas ta requete dans le code. Tu fais une procédure stockée qui te renvoie l'identifiant.

    Sinon la récupération dépend de ton SGBD.

    Sous SQL Server il fait utiliser la fonction SCOPE_IDENTITY( ) : ( SELECT SCOPE_IDENTITY() ).

    Sous Oracle les champs auto incrémenté n'existent pas (je dis pas de connerie là ? ) c'est remplacé par des séquences.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  5. #5
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Franchement elle est bonne celle là. Comme si c'était la faute d'ADO.NET si le jeu préféré des éditeurs de SGBD est d'implémenter chacun des langages à la con plutôt que de suivre les normes SQL...

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 33
    Par défaut
    Sous Oracle les champs auto incrémenté n'existent pas (je dis pas de connerie là ? ) c'est remplacé par des séquences.
    On peut simuler les auto increments sous Oracle avec une séquence associé à un TRIGGER.

    Franchement elle est bonne celle là. Comme si c'était la faute d'ADO.NET si le jeu préféré des éditeurs de SGBD est d'implémenter chacun des langages à la con plutôt que de suivre les normes SQL...
    Je pense pouvoir avancé avec peu de risque de me tromper que pratiquement tous les SGBDR (corrige moi si je me trompe) dispose de cette fonctionnalité sous des noms ou sous des formes différentes. ce qui fait qu'en Java, sous JDBC, il existe une fonctionnalité standard permettant de récupérer ce type de champ (il s'agit de la méthode getGeneratedKeys() de l'interface Statement)! Libre au Driver utilisé de récupérer la bonne valeur.

    Et on ne peu pas dire que .NET, comparé à JAVA, soit un modèle de portabilité!

Discussions similaires

  1. Réponses: 10
    Dernier message: 21/05/2015, 18h58
  2. Champ auto increment
    Par webbulls dans le forum Bases de données
    Réponses: 9
    Dernier message: 21/04/2004, 16h07
  3. Remise à zero champ auto-incrementé (SQL Server)
    Par James85 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/01/2004, 09h23
  4. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 18h30

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