Bonjour,

Comme le dit le titre, il m'est toujours impossible de réaliser un UPDATE ou un INSERT quand, dans ma table MySQL, j'ai un champ auto-incrémenté.
Si je le supprime ça fonctionne nickel.

Voici une partie de code qui pose problème :
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
procedure TfrmIcones.dbiIconeDblClick(Sender: TObject);
var
  img_id : string;
begin
  if OpenPictureDialog.Execute then
  begin
    with qryIcones do
    begin
      img_id := FieldByName('idimage').AsString;
      Close;
      SQL.Clear;
      SQL.Add('UPDATE icones SET image = :myimg WHERE idimage = ' + img_id);
      ParamCheck := True;
      Parameters.ParamByName('myimg').LoadFromFile(OpenPictureDialog.FileName, ftBlob);
      try
        ExecSql;
        Active := False;
        SQL.Clear;
        SQL.Add('SELECT * FROM icones ORDER BY application');
        Active := True;
        Locate(img_id, 'idimage', []);
      Except on E:Exception do
        begin
          Showmessage('Erreur lors de l''insertion de l''image dans la base de données : ' +
          E.Message);
        end;
      end;
    end;
  end;
end;
Delphi me retourne l'erreur :

"Le projet a déclenché la classe d'exception EOleException avec le message 'Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres'."

Sur le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SQL.Add('UPDATE icones SET image = :myimg WHERE idimage = ' + img_id);
Pour info j'utilise Delphi 2010 et je me connecte en ADO sur ma DB MySQL.