Delphi: Ajouter un champ a une base de donnée AdoTable (MDB)
Bonjour,
j'essai d'y ajouter un champ a une base de donnée access existante. J'ai le code suivant mais qui me produit un erreur.
Merci pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
var
AdoTable1: TAdoTable;
Field: TField;
Str1: String;
...
If ADOTable1.FieldList.Find(Str1) = nil then
Begin
ADOTable1.Active := False;
Field := TIntegerField.Create(AdoTable1);
Field.FieldName := Str1;
Field.DataSet := AdoTable1;
AdoTable1.FieldDefs.Add(Str1, ftInteger);
AdoTable1.Active := true; //-> Erreur ici pour dire que le champ (nom dans Str1) n'a pas été trouvé
End;
... |
Ajout d'un champs au AdoTable
Merci pour vos recommandations.
Voici la solution trouvé :
Code:
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
|
var
AdoTable1: TAdoTable;
AdoConnection: TADOConnection;
AdoQuery: TAdoQuery;
Str1: String;
...
If ADOTable1.FieldList.Find(Str1) = nil then
Begin
ADOTable1.Active := False;
AdoConnection := TADOConnection.Create(Form1);
AdoQuery := TAdoQuery.Create(Form1);
AdoConnection.ConnectionString := AdoTable1.ConnectionString ;
AdoConnection.LoginPrompt := False;
AdoConnection.Connected := True;
AdoQuery.Connection := AdoConnection;
AdoQuery.Active := False;
AdoQuery.SQL.Clear;
Adoquery.SQL.Add('ALTER TABLE ' + TableName + ' ADD ' + FieldName + ' INTEGER');
Adoquery.ExecSQL;
Adoquery.Free;
AdoConnection.Connected := False;
AdoConnection.Free;
AdoTable1.Active := true;
End; |