AddIndex

titi3847 Messages postés 1 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 6 janvier 2004 - 6 janv. 2004 à 17:57
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008 - 6 janv. 2004 à 19:08
Titi

Bonjour,

J'ai créé une table DBF et je voudrais mettre des index secondaires. J'ai réussi à créer des index secondaire avec un seul champs. Si je veux avoir plusieurs champs pour mon index lors de la création de cet index il me dit 'Descripteur d'index incorrect'. J'ai regardé l'aide et tout m'a l'air correct. Mais comme je ne suis pas une grande professionnel peut être auriez-vous une idée.
Je vous mets ci-dessous mon code.
Vous remerciant par avance de votre aide.
A bientôt.

(J'ai simplifié car le code est trop long !!)

With TTable.Create(GDCAD.tDbf) do
Begin
Active:=false;
DataBaseName:=DIR_RESUL_MIXTE; // 'dkd' ;
TableName:=nom+'.dbf';
TableType:=ttDBase;

CreerTab_Champs;

FieldDefs.Clear;
for i:=0 to NB_Champs -1 do
begin
with FieldDefs.AddFieldDef do
begin
Name := tab_champs[i].nom;
DataType := ftString;
Size := strToInt(tab_champs[i].taille);
Required:=false;
end;
GDCAD.refresh;
end;
CreateTable ;
Active:=true;

CreerTab_Index;

Active:=false;
for i:=0 to NB_Index -1 do
begin
j:=0;
chpIdx:=Tab_Index[i].tab_champs[j];
inc(j);
while tab_index[i].tab_champs[j]<>'' do
Begin
ChpIdx:=ChpIdx+';'+tab_index[i].tab_champs[j];
inc(j); // Donc là je récupère tous les champs qui composent mon index
end;
if (tab_index[i].itype = 'U') then
begin
AddIndex(tab_index[i].nom+'.NTX',chpIdx,[ixUnique]);
end
else
begin
AddIndex(tab_index[i].nom+'.NTX',chpIdx,[]);
end;
GDCAD.refresh;
end;
Active:=true;
end ;

1 réponse

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
6 janv. 2004 à 19:08
AddIndex(
tab_index[i].nom+'.NTX',
chpIdx,
[...types ?........ ]);

Quel sont les choix possibles du type requis?
ixUnique en est un ... :question)

tenter d'en utiliser un autre ,
au lieu de laisser vide.

yve
0
Rejoignez-nous