Rechercher : dans
Par :

SQL: ajout données avec un numéro automatique

Dernière réponse le 21 jui 2008 à 22:57:23 kithry, le 23 jun 2004 à 16:06:18 
 Signaler ce message aux modérateurs

Bonjour,

J'ai créé une table dans ACCESS avec comme clé primaire un numéro automatique. Je crée maintenant des servlets pour accéder à la base, je suis donc obligée de remplir la table avec des requetes SQL et non directement avec ACCESS. Je voudrais ajouter une ligne dans ma table, j'utilise la forme de requete suivante:

INSERT INTO Nom_de_la_table(colonne2,colonne3,colonne4,...)

VALUES (Valeur2,Valeur3,Valeur4,...)

J'obtiens un message d'erreur : "1 paramètre manquant" qui correspond au numero implémenté automatiquement. Pouvez vous m'aider?
Merci d'avance.

Meilleures réponses pour « SQL: ajout données avec un numéro automatique » dans :
SQL - Modification de table VoirModification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...
SQL - Contraintes d'intégrité VoirExpression de contraintes d'intégrité Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables, faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base soient...
SQL - Création d'index VoirQu'est-ce qu'un index? Un index est un objet complémentaire (mais non indispensable) à la base de données permettant d'"indexer" certaines colonnes dans le but d'améliorer l'accès aux données par le SGBDR, au même titre qu'un index dans un livre ne...

2

NoSFe, le 23 jun 2004 à 16:07:50

Met NULL a la place de rien :

INSERT INTO Nom_de_la_table(colonne1,colonne2,colonne3,colonne4,...)

VALUES (NULL,Valeur2,Valeur3,Valeur4,...)

Répondre à NoSFe

3

kithry, le 23 jun 2004 à 16:12:11

Merci beaucoup, je vais essayer de ca pas!!!

Répondre à kithry

4

kithry, le 23 jun 2004 à 16:31:57

J'ai une erreur de syntaxe maintenant, savez vous pourquoi ou avez vous une autre idée?
Merci d'avance

Répondre à kithry

5

NoSFe, le 23 jun 2004 à 16:34:43

Envoi l'erreur et le code

Répondre à NoSFe

6

kithry, le 23 jun 2004 à 16:44:21

Ma fonction:

public int intCreerPersonne(String nom, String prenom, String date, String tel, String mail){

// Variables
int intRes = 0;

try {
// Préparation de la requête
String requete = new String();
String selection = new String();
Statement statement=connexion.createStatement();

//selection="SELECT MAX(NumPersonne) From Personne";
//statement.executeUpdate(selection);

requete="INSERT INTO Personne (NumPersonne, Nom, Prenom, DateNaissance, TelPortable, Mail) ";
requete+= " VALUES ("+ null + ",'" + nom + ",'" + prenom + "','" + date + "'," + tel + ",'" + mail + "')";

// Exécution de la requete
intRes = statement.executeUpdate(requete);

// Fermeture des connexions
statement.close();

}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("Erreur de création d'une personne");
}

return intRes;
}

Main :
public static void main(String[] args) {

//Création d'un objet personnes
ClsPersonnes pers = new ClsPersonnes();

pers.ouvrirConnexion();

//pers.afficher();
//Création d'une nouvelle personne
pers.intCreerPersonne("Robert", "justin", "12031976", "0613040201", "juju@voila.fr");

pers.fermerConnexion();

}
}

Erreur :
java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression ''Robert,'justin','12031976',0613040201,'juju@voila.fr')'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)Erreur de création d'une personne

at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
at ClsPersonnes.intCreerPersonne(ClsPersonnes.java:89)
at ClsPersonnes.main(ClsPersonnes.java:164)

Répondre à kithry

NoSFe, le 23 jun 2004 à 16:52:17

Essaie avec NULL en majuscules

Répondre à NoSFe

7

kithry, le 23 jun 2004 à 17:07:21

Merci pour tes conseils si rapides.
J'essaie de le mettre soit dans la requete en chaine de caractere, soit en valeur null reconnue par java, dans les 2 cas, si je mets en majuscules, ca compile plus. qu'es ce que t'en pense?

Répondre à kithry

8

NoSFe, le 23 jun 2004 à 17:43:33

Apparement ta pa mis le telephone en chaine dans ta requete
c'est peut etre ca

Répondre à NoSFe

9

NoSFe, le 23 jun 2004 à 17:59:42

Il manqe un ' apres nom + "

Répondre à NoSFe

10

kithry, le 24 jun 2004 à 11:02:16

Merci pour ton aide.
En fait, maintenant j'ai de problemes avec ECLIPSE pour executer, je me demandais s'il etait possible d'executer directement ma servlet sous windows (comme dans l'invt de commande sous unix)?

Répondre à kithry

11

HackTrack, le 24 jun 2004 à 11:23:50

Quand une table comporte un champ avec un 'autonumber', il ne faut pas spécifier ce champ dans un INSERT.

Par exemple, si ta table "Personne" contient les champs suivants:
NumPersonne, Nom, Prenom, DateNaissance, TelPortable, Mail
et que "NumPersonne" est un "autonumber", pour effectuer un insert, tu ne passes ni 'null' ni une chaîne vide en argument. Tu ne passes tout simplement rien pour ce champ!

Remplace donc:

requete="INSERT INTO Personne (NumPersonne, Nom, Prenom, DateNaissance, TelPortable, Mail) "; 
requete+= " VALUES ("+ null + ",'" + nom + ",'" + prenom + "','" + date + "'," + tel + ",'" + mail + "')"; 


par:

requete="INSERT INTO Personne"; 
requete+= " VALUES (" + nom + ",'" + prenom + "','" + date + "'," + tel + ",'" + mail + "')"; 


;-)

Répondre à HackTrack

12

kithry, le 24 jun 2004 à 15:25:56

Merci pour votre aide, ca marche sans mettre le numero.

Répondre à kithry

13

Jojo, le 21 jui 2008 à 21:11:51

Bonjour à tous,

j'ai de sérieux problèmes avec Access et mon devoir est à rendre dans deux jours!!!

J'aimerais savoir deux choses :
1- j'ai entré un attribut qui s'appelle semestre et je voudrais qu'il s'affiche automatiquement en fonction de la date : par exemple, 1 si on est en octobre, 2 si on est en mars (calendrier scolaire !).

2- j'ai créé des requêtes mais elles ne marchent pas !!! Pourtant tout a été fait ! Le problème je pense vient de mes relations qui sont bizarres lol ! En effet, quand je les ai créés, elles affichaient "one to many" avec les symboles bien sûr et il suffit que je ferme ma base de données et que je la rouvre et les symboles disparaissent comme par magie !

Bon voilà ! Soyez compréhensifs, je ne suis qu'un débutant d'Access !

Merci d'avance

Jojo

Répondre à Jojo

14

 6487, le 21 jui 2008 à 22:57:23

Bonjour
slt je cherche dep8 toujours le language msql que faire

Répondre à 6487