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

ASP.NET Discussion :

identifiant non autoincrementé


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 132
    Par défaut identifiant non autoincrementé
    bjr,

    dans ma fromview j'aimerai que mon identifiant lors de l'insertion des données prenne la valeur du dernier enregistrement +1. mon identifiant n'est pas autoincrement. alors je fais une requete max(id)+1 pour le retrouver mais je ne sais pas comment l'affecter dans ma requete d'insertion.
    merci de votre aide.

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Tu devrais déléguer ce travail à une procédure stockée qui te permettras non seulement de récupéré de nouvel ID dans ta requête INSERT, mais en plus de faire cela au sein d'une transaction pour mieux sécurisé le tout (éviter les PB d'INSERT simultanés)

  3. #3
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    En PL/SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO TableName
    (IdColumn, NameColumn)
    SELECT (MAX(IdColumn) + 1), 'NewName' FROM TableName

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 132
    Par défaut procédure tockée
    slt,

    j'ai fait une procédure stockée la voila:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    ALTER PROCEDURE dbo.SP_INSERT_APPEL
     
    	(
    	   @A_ETAT char(10),
    	   @A_URGENCE char(1),
    	   @A_IMPACT char(10),
    	   @A_PRIORITE char(10),
    	   @A_CREATEUR char(15),
    	   @A_DATECREATION DateTime,
    	   @A_VECTEURAPPEL char(10),
    	   @A_PRODUITCODE char(10),
    	   @A_PRODUITLIB char(20),
    	   @A_VERSION char(10),
    	   @A_EVALUATION char(1),
    	   @A_CONTRATCODE char(10),
    	   @A_SOCIETECODE char(10),
    	   @A_SOCIETELIB char(20),
    	   @A_PARTENAIRE char(1),
    	   @A_INTERLCODE char(10),
    	   @A_INTERLLIB char(20),
    	   @A_INTERLTEL char(24),
    	   @A_INTERLMAIL char(24),
    	   @A_DESCRIPTION char(254)
     
    	)
     
    AS
        DECLARE @A_NUMEROAPPEL int; 
     
    	SET @A_NUMEROAPPEL = (SELECT NextId from IDS where TableName='APPELS');
    	UPDATE IDS SET NextId=@A_NUMEROAPPEL+1 where TableName='APPELS';
     
    	INSERT INTO APPELS (A_NUMEROAPPEL,A_ETAT,A_URGENCE,A_IMPACT,A_PRIORITE,A_CREATEUR,A_DATECREATION,A_VECTEURAPPEL,A_PRODUITCODE,A_PRODUITLIB,A_VERSION,A_EVALUATION,A_CONTRATCODE,A_SOCIETECODE,A_SOCIETELIB,A_PARTENAIRE,A_INTERLCODE,A_INTERLLIB,A_INTERLTEL,A_INTERLMAIL,A_DESCRIPTION)
    	   VALUES (@A_NUMEROAPPEL ,@A_ETAT,@A_URGENCE,@A_IMPACT,@A_PRIORITE,@A_CREATEUR,@A_DATECREATION,@A_VECTEURAPPEL,@A_PRODUITCODE,@A_PRODUITLIB,@A_VERSION,@A_EVALUATION,@A_CONTRATCODE,@A_SOCIETECODE,@A_SOCIETELIB,@A_PARTENAIRE,@A_INTERLCODE,@A_INTERLLIB,@A_INTERLTEL,@A_INTERLMAIL,@A_DESCRIPTION)  
     
    	   	RETURN  @@IDENTITY
    mais ça ne marche pas. alors j'ai pensé à une requete sql .





    Citation Envoyé par BCmDev
    En PL/SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO TableName
    (IdColumn, NameColumn)
    SELECT (MAX(IdColumn) + 1), 'NewName' FROM TableName

  5. #5
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Une procédure, c'est ce qu'il faut faire. La tienne m'a l'air bien. Tu gères une table de séquences, c'est ça ?
    As-tu une erreur à l'exécution ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 132
    Par défaut sur ta requete
    slt
    ton 'NewName' represente koi?




    Citation Envoyé par BCmDev
    En PL/SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO TableName
    (IdColumn, NameColumn)
    SELECT (MAX(IdColumn) + 1), 'NewName' FROM TableName

  7. #7
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    J'aurais plus vu un truc de ce genre :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    ALTER PROCEDURE dbo.SP_INSERT_APPEL
     
    	(
    	   @A_ETAT char(10),
    	   @A_URGENCE char(1),
    	   @A_IMPACT char(10),
    	   @A_PRIORITE char(10),
    	   @A_CREATEUR char(15),
    	   @A_DATECREATION DateTime,
    	   @A_VECTEURAPPEL char(10),
    	   @A_PRODUITCODE char(10),
    	   @A_PRODUITLIB char(20),
    	   @A_VERSION char(10),
    	   @A_EVALUATION char(1),
    	   @A_CONTRATCODE char(10),
    	   @A_SOCIETECODE char(10),
    	   @A_SOCIETELIB char(20),
    	   @A_PARTENAIRE char(1),
    	   @A_INTERLCODE char(10),
    	   @A_INTERLLIB char(20),
    	   @A_INTERLTEL char(24),
    	   @A_INTERLMAIL char(24),
    	   @A_DESCRIPTION char(254)
     
    	)
     
    AS
        DECLARE @A_NUMEROAPPEL int; 
     
        SET @A_NUMEROAPPEL = SELECT (MAX(A_NUMEROAPPEL) + 1) FROM APPELS
     
       INSERT INTO APPELS (A_NUMEROAPPEL,A_ETAT,A_URGENCE,A_IMPACT,A_PRIORITE,A_CREATEUR,A_DATECREATION,A_VECTEURAPPEL,A_PRODUITCODE,A_PRODUITLIB,A_VERSION,A_EVALUATION,A_CONTRATCODE,A_SOCIETECODE,A_SOCIETELIB,A_PARTENAIRE,A_INTERLCODE,A_INTERLLIB,A_INTERLTEL,A_INTERLMAIL,A_DESCRIPTION)
       VALUES (@A_NUMEROAPPEL ,@A_ETAT,@A_URGENCE,@A_IMPACT,@A_PRIORITE,@A_CREATEUR,@A_DATECREATION,@A_VECTEURAPPEL,@A_PRODUITCODE,@A_PRODUITLIB,@A_VERSION,@A_EVALUATION,@A_CONTRATCODE,@A_SOCIETECODE,@A_SOCIETELIB,@A_PARTENAIRE,@A_INTERLCODE,@A_INTERLLIB,@A_INTERLTEL,@A_INTERLMAIL,@A_DESCRIPTION)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 132
    Par défaut erreur de syntaxe
    j'ai l'erreur suivante:

    erreur de syntaxe vers select.



    Citation Envoyé par guitoux1
    J'aurais plus vu un truc de ce genre :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    ALTER PROCEDURE dbo.SP_INSERT_APPEL
     
    	(
    	   @A_ETAT char(10),
    	   @A_URGENCE char(1),
    	   @A_IMPACT char(10),
    	   @A_PRIORITE char(10),
    	   @A_CREATEUR char(15),
    	   @A_DATECREATION DateTime,
    	   @A_VECTEURAPPEL char(10),
    	   @A_PRODUITCODE char(10),
    	   @A_PRODUITLIB char(20),
    	   @A_VERSION char(10),
    	   @A_EVALUATION char(1),
    	   @A_CONTRATCODE char(10),
    	   @A_SOCIETECODE char(10),
    	   @A_SOCIETELIB char(20),
    	   @A_PARTENAIRE char(1),
    	   @A_INTERLCODE char(10),
    	   @A_INTERLLIB char(20),
    	   @A_INTERLTEL char(24),
    	   @A_INTERLMAIL char(24),
    	   @A_DESCRIPTION char(254)
     
    	)
     
    AS
        DECLARE @A_NUMEROAPPEL int; 
     
        SET @A_NUMEROAPPEL = SELECT (MAX(A_NUMEROAPPEL) + 1) FROM APPELS
     
       INSERT INTO APPELS (A_NUMEROAPPEL,A_ETAT,A_URGENCE,A_IMPACT,A_PRIORITE,A_CREATEUR,A_DATECREATION,A_VECTEURAPPEL,A_PRODUITCODE,A_PRODUITLIB,A_VERSION,A_EVALUATION,A_CONTRATCODE,A_SOCIETECODE,A_SOCIETELIB,A_PARTENAIRE,A_INTERLCODE,A_INTERLLIB,A_INTERLTEL,A_INTERLMAIL,A_DESCRIPTION)
       VALUES (@A_NUMEROAPPEL ,@A_ETAT,@A_URGENCE,@A_IMPACT,@A_PRIORITE,@A_CREATEUR,@A_DATECREATION,@A_VECTEURAPPEL,@A_PRODUITCODE,@A_PRODUITLIB,@A_VERSION,@A_EVALUATION,@A_CONTRATCODE,@A_SOCIETECODE,@A_SOCIETELIB,@A_PARTENAIRE,@A_INTERLCODE,@A_INTERLLIB,@A_INTERLTEL,@A_INTERLMAIL,@A_DESCRIPTION)

Discussions similaires

  1. [Turbo Pascal] Identifiant non reconnu
    Par hallaj dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 23/06/2008, 01h37
  2. Requete sur identifiant non existant
    Par Eldokoeur dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/05/2008, 16h35
  3. [MySQL] Identifiant non correspondant
    Par kate59 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 20/02/2008, 09h21
  4. Réponses: 12
    Dernier message: 26/08/2005, 10h02
  5. [FLASH MX] Erreur : L'identifiant non sensible à ...
    Par blowdesign dans le forum Flash
    Réponses: 2
    Dernier message: 16/05/2004, 21h10

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