[D2006]DB sélection d'un champ caractère
Bonjour.
Dans un programme j'ai une procédure qui sélectionne les enregistrements sur le champ DBQ=' '.
Ce champ date DBQ, en fait le mois, n'a que les valeurs suivantes : ' ' (2 espaces), '01'..'12' ou '**'.
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 30 31 32 33
| procedure TFInitA.CreatWdeps;
begin // creation du fichier archive de AN sans les enreg. non réglés DBQ = ' ';
FichSt.Tbst.ReadOnly := False;
FichSt.Tbst.Close;
FichSt.Tbst.TableName := Depw+'bak.dbf'; // à partir de fich. de AN sauvegardé
FichSt.Tbst.Filter := '(DBQ <> '' '') OR (DBQ <> '''' )'; // 05/01/2009
FichSt.Tbst.Filtered := true;
FichSt.CopieFichDB(FichSt.TbSt, DepMod.TbAff, NWdepAN+'.dbf');
DepMod.TbAff.AddIndex('IxNrep','NREP',[]);
DepMod.TbAff.AddIndex('IxCode','CODE',[]);
MemFA.Lines.Add(' Création du f. '+ NWdepAN +'.dbf'); // archivé
FichSt.Tbst.Close; // création du fich AN1 avec report des enreg. non réglés WDEP13
FichSt.Tbst.TableName := Depw+'bak.dbf';
FichSt.TbSt.Filtered := false;
FichSt.Tbst.Filter := '(DBQ = '' '') OR (DBQ = '''' )' ; // 05/01/2009
FichSt.Tbst.Filtered := true; // filtrage du nouveau fichier de l'année
FichSt.AjoutFichDB(FichSt.TbSt, DepMod.TbAff, DepW+'.dbf');
MemFA.Lines.Add(' Création du f. '+Depw+'.dbf de la nouvelle année'); //EC WDEP
FichSt.Tbst.Close;
FichSt.Tbst.Filtered := false;
FichSt.Tbst.Filter := '';
end;
procedure TFInitA.CopieFich(TablSource, TablDestination : Ttable; NomFDest : string);
begin //nom du f.destination
TablDestination.TableName := NomFDest;
TBM.Destination := TablDestination;
TBM.Source := TablSource;
TBM.Mode := batCopy;
TBM.Execute;
end; |
J'ai utilisé cette procédure pendant des années, une fois DBQ avait une longueur nulle, d'où l'ajout au filtre.
Mais cette fois la sélection ne fonctionne pas, même après avoir modifié à ' ' des champs DBQ.
Pourquoi ce défaut de sélection ?
Bonne Année à tous.