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 :

utilisation ADOCommand pour créer table MSAccess


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut utilisation ADOCommand pour créer table MSAccess
    Bonjour,

    Pour créer une table comment indiquer que la clé primaire doit être incrémentée automatiquement ?
    Voici mon code :
    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
      //***************** Création table DBUser
      req:= 'CREATE TABLE DBUSER (' +
      ' USER_NO AUTONUMBER, ' +
      ' PRIMARY KEY (USER_NO), '+
      ' USER_DBTYPE BYTE DEFAULT '+IntToStr(_BD_LOCALE)+', ' +
      ' USER_PASS INTEGER DEFAULT 1026575137, ' + // "admin" crypté
      ' USER_RIGHTS INTEGER DEFAULT 2147483647, ' + // all rights
      ' USER_CONVERSION BYTE DEFAULT '+IntToStr(_ADOBE_RGB_1998)+', ' +
      ' USER_ILLUMINANT BYTE DEFAULT '+IntToStr(_CIE_Ill_D65)+', ' +
      ' USER_OBSERVER BYTE DEFAULT ' +IntToStr(_CIE_Obs1931)+', ' +
      ' USER_NAME VARCHAR(32) NOT NULL, ' +
      ' USER_USED BIT DEFAULT -1 '+
      ')';
      ADOCommand1.CommandText := req;
      ADOCommand1.Execute;
    Si j'écris 'USER_NO INTEGER NOT NULL ' je n'ai aucun problème mais ce champ ne s'incrémente pas. Comment déclarer USER_NO pour qu'il s'auto incrémente ?

    Merci à tous

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 619
    Points : 25 315
    Points
    25 315
    Par défaut
    C'est plus un Question Base de Données que Langage !
    Je dirais même que c'est une question ACCESS et non une question DELPHI


    Essaye
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE DBUSER (USER_NO AUTONUMBER PRIMARY KEY, ...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE DBUSER (USER_NO AUTOINCREMENT PRIMARY KEY, ...

  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
    Même remarque que Shai.

    Si AUTOINCREMENT ne fonctionne pas, essaye également ceci au cas où:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE DBUSER (USER_NO PRIMARY KEY COUNTER, ...

    @+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut
    Les deux propositions génèrent uen erreur de syntaxe dsans la définition du champ.

  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
    Essaye comme ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE DBUSER(USER_NO COUNTER, ...);
    puis
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE DBUSER ADD CONSTRAINT PK_DBUSER PRIMARY KEY (USER_NO);

    @+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Tout baigne
    Comme celà ça marche :
    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
      req:= 'CREATE TABLE DBUSER (' +
      ' USER_NO COUNTER, '+         // Clé primaire
      ' USER_DBTYPE BYTE DEFAULT '+IntToStr(_BD_LOCALE)+', ' +
      ' USER_PASS INTEGER DEFAULT 1026575137, ' + // "admin" crypté
      ' USER_RIGHTS INTEGER DEFAULT 2147483647, ' + // all rights
      ' USER_CONVERSION BYTE DEFAULT '+IntToStr(_ADOBE_RGB_1998)+', ' +
      ' USER_ILLUMINANT BYTE DEFAULT '+IntToStr(_CIE_Ill_D65)+', ' +
      ' USER_OBSERVER BYTE DEFAULT ' +IntToStr(_CIE_Obs1931)+', ' +
      ' USER_NAME VARCHAR(32) NOT NULL, ' +
      ' USER_USED BIT DEFAULT -1 '+
      ')';
      ADOCommand1.CommandText := req;
      ADOCommand1.Execute;
      // ==================== Clé primaire
      req := 'ALTER TABLE DBUSER ADD CONSTRAINT PK_OPERATOR PRIMARY KEY (USER_NO);';
      ADOCommand1.CommandText := req;
      ADOCommand1.Execute;

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

Discussions similaires

  1. Pb pour créer table de jointure avec un attribut
    Par cissou06 dans le forum Ruby on Rails
    Réponses: 0
    Dernier message: 28/05/2008, 17h30
  2. utilisation ADO pour créer une Base de Donnée vide
    Par laribi71 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 20/02/2008, 19h13
  3. utiliser mpi pour créer le paraléllisme avec le builder c++
    Par randa84 dans le forum Développement
    Réponses: 1
    Dernier message: 21/02/2007, 13h41
  4. Réponses: 5
    Dernier message: 06/09/2006, 13h15
  5. déf de type pour créer table
    Par boucher_emilie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 15h28

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