Bonjour à tous,
voila, j'utilises dbexpress avec une base Interbase en local,
j'utilises principalement un TSqlQuery et tout marche bien pour
les SELECT mais pour les INSERT j'ai des erreurs.

Mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
procedure TcreerCompteForm.RegisterUser;
Begin
DataModule1.SQLQuery.Close;
DataModule1.SQLQuery.SQL.Clear;
DataModule1.SQLQuery.SQL.Add('INSERT INTO UTILISATEURS VALUES(:NOM,:PRENOM)');
DataModule1.SQLQuery.ParamByName('NOM').Value:=(CreerCompteForm.LblNom.text);
DataModule1.SQLQuery.ParamByName('PRENOM').Value:=(CreerCompteForm.LblPrenom.text);
DataModule1.SQLQuery.ExecSQL;
End;
avec ce code j'ai l'erreur :

Count of read-write columns does not equal count of values
pourtant, si je fais la requête suivante dans IbExpert, elle s'insère sans pb :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
INSERT INTO UTILISATEURS(NOM,PRENOM) Values ('duss','jean-claude')

J'ai une erreur différente si j'utilise ce code à la place :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
procedure TcreerCompteForm.RegisterUser;
Begin
DataModule1.SQLQuery.SQL.Clear;
DataModule1.SQLQuery.SQL.Add('INSERT INTO UTILISATEURS (NOM,PRENOM) Values ('+ CreerCompteForm.LblNom.text +','+ CreerCompteForm.LblPrenom.text +')');
DataModule1.SQLQuery.ExecSQL;
End;
Token unknown -line 1, .....
j'ai esayé les simples quotes autour des noms de champs, les doubles quotes etc etc... sans trouver la syntaxe exacte

Quelqu'un pourrait il me dire où est mon erreur et quelle est la bonne façon de faire ceci ?

voilà la structure de la table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CREATE TABLE UTILISATEURS (
    ID              INTEGER NOT NULL,
    NOM             VARCHAR(30),
    PRENOM          VARCHAR(30),
    SEXE            VARCHAR(10),
    DATE_NAISSANCE  DATE,
    TAILLE          INTEGER,
    MOT_DE_PASSE    VARCHAR(15)
);
Merci à vous

Fred