Etrange... Ce code devrait en théorie pouvoir ajouter une clé primaire à une table, mais chez moi, Paradox m'indique qu'il s'agit d'une fonctionnalité non supportée...
// Création dynamique d'un composant TQuery qui va permettre
// d'intervenir sur la table de la base de donnée
With TQuery.Create(nil) do begin
DatabaseName := [Répertoire contenant le fichier de la table à modifier];
With SQL do begin
// Composition de la requête qui va permettre de créer la clé primaire
Add('Alter table [Nom du fichier correspondant à la table à modifier]');
Add('Add primary key ([Nom du champ ou Nom des champs séparés par des virgules de la table composant la clé primaire]);');
end;
try
// Exécution de la requête
ExecSQL;
Except
// Gestion des erreurs
on e : Exception
do ShowMessage(e.Message);
end;
// Nettoyage de la mémoire
Free;
end;
En revanche, il est possible de créer une table dynamiquement avec une clé primaire comme dans l'exemple ci-dessous :
// Création dynamique d'un composant TQuery qui va permettre d'intervenir sur la base de donnée
With TQuery.Create(nil) do begin
DatabaseName := [Répertoire contenant le fichier de la table à modifier];
With SQL do begin
// Composition de la requête qui va permettre de créer la table avec la clé primaire
Add('Create table test_index');
Add('(');
Add('Champ1 integer,');
Add('Champ2 integer,');
Add('primary key (Champ1)');
Add(');');
end;
try
// Exécution de la requête
ExecSQL;
Except
// Gestion des erreurs
on e : Exception
do ShowMessage(e.Message);
end;
// Nettoyage de la mémoire
Free;
end;
10 déc. 2014 à 14:52