titi3847
Messages postés1Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention 6 janvier 2004
-
6 janv. 2004 à 17:57
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 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 ;