Je migre notre application Delphi XE2 de MSSQL (en utilisant des composants ADO) à PostgreSQL en utilisant UniDAC.PostgreSQL serial (autoincrement) avec UniDac sur Delphi XE2
Dans la base de données, il existe quelques champs de type serial
(auto-incrémentation). Lorsque j'ajoute un enregistrement, je ne mets aucune donnée dans ce champ d'auto-incrémentation. Formellement, avec MSSQL/ADO cela fonctionne automatiquement, mais maintenant j'ai une exception.
Le code:
aqrMsgs.Append;
aqrMsgsUser_From.AsInteger := UserId;
aqrMsgsUser_To.AsString := UserIds[I];
aqrMsgsSubject.AsString := Trim (edtSubject.Text);
aqrMsgsContents.AsString := mmoContents.Text;
aqrMsgsIsDone.AsBoolean := False;
aqrMsgs.Post;
Et l'exception est:
'id' Le champ est TIntegerField
, pas TAutoIncrementField. Par ailleurs, si j'utilise DBGrid edit (exactement, j'utilise ExpressQuantumGrid), pour ajouter des enregistrements à une autre table avec la même structure, tout fonctionne bien.
Comment est-ce possible de le résoudre? Merci.