Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : filtrage d'une table [ Base de données / Autre ] (zoya23)

jeudi 24 juillet 2008 à 11:42:38 | filtrage d'une table

zoya23

bonjour! je veux copier des enregistrement d'une table. c'est pourquoi j'ai utilisé un filtre pour la séléction des enregistrements et la fonction dbicopytable pour stocker ces enregistrements filtrés dans une nouvelle table.
la copie se fait sans erreur mais le pb est que le filtrage n'est pas réalisé: la table copiée est la meme que la table initiale.
Voici le code de ma focntion:


procedure CopyTable(FromDir, SrcTblName, ToDir, DestTblName: String);
var
  DBHandle: HDBIDB;
  ResultCode: DBIResult;
  Src, Dest, Err: Array[0..255] of Char;
  SrcTbl, DestTbl : TTable;
begin
  SrcTbl := TTable.Create(Application);
  DestTbl := TTable.Create(Application);
  try
    SrcTbl.DatabaseName := FromDir;
    SrcTbl.TableName := SrcTblName;
    SrcTbl.Filter := 'Compteur ='+ QuotedStr(Edit4.Text); 
    SrcTbl.Filtered := true;

    SrcTbl.Open;
    DBHandle := SrcTbl.DBHandle;
    SrcTbl.Close;
    ResultCode := DbiCopyTable(DBHandle,true,
      StrPCopy(Src,FromDir + '\' + SrcTblName),nil,
      StrPCopy(Dest,ToDir + '\' + DestTblName));
    if (ResultCode <> DBIERR_NONE) then
    begin
      DbiGetErrorString(ResultCode,Err);
      raise EDatabaseError.Create('While copying ' +
        FromDir + '\' + SrcTblName + ' to ' +
        ToDir + '\' +   DestTblName + ', the '
        + ' database engine generated the error '''
        + StrPas(Err) + '''');
    end

  finally
    SrcTbl.Free;
    DestTbl.Free;
  end;
end;


Merci d'avance.


samedi 26 juillet 2008 à 21:00:46 | Re : filtrage d'une table

HAFTARIFOUAD

Bonjour

1-Essaiez d'utiliser ce code;
 SrcTbl.DatabaseName := FromDir;
 SrcTbl.TableName := SrcTblName;
 SrcTbl.Open;   
 SrcTbl.Filter := 'Compteur ='+ QuotedStr(Edit4.Text); 
 SrcTbl.Filtered := true;

(On peux pas appliquer un filtre sur une table Fermée.)

2-Si non, utilisez une boucle pour transfèrer les données souhaités

Table, NTable:TTable;
x,y: integer;
Table.first;// 1 enregistrement
For x:=0 to Table.RecordCount do
begin
NTable.insert; // ajouter un nouveau enregistrement
  For y :=0 to Nombre de champs souhaités transfèrés do
   begin
    NTable.Field[x].value:=Table.Fields[x].asString; // copier champs par champ
  end;
    NTable.Post;// valider l'enregistrement
    Table.Next;// se mettre à l'enregistrement suivant
end;

Ce code peut être amélioré, biensure....

Bonne chance et plein de succès




Cette discussion est classé dans : table, srctbl, fromdir, srctblname, dbhandle


Répondre à ce message

Sujets en rapport avec ce message

Changer le nom d'un champ dans une base Paradox [ par Philippe ] Est_ce quelqu'un sait comment renommer le nom d'un champ dans une table paradox ? J'ai trouvé pour créer une table dans un prog avec les champs mais j Trier une table ? [ par Gerard ] Bonjour,Est-il possible de trier une table ou doit-on obligatoirement passer par une requete(query) ?Merci !Gerard Trier les champs d'une table [ par Julien-o ] Qqu'un peut-il m'éclairer sur la manière 'propre' de trier les champs d'une table sans passer par un TQuery ?Je procède en ce moment de la manière sui Pb TDBCombobox + Table ACCESS [ par lguez ] Bonjour,Dans une table ACCESS, j'ai 3 colonnesidVentil : numAuto (clé primaire)Ventilation : entierlibellé : stringSous Delphi, j'ai une Form qui cont Supprenant ADO [ par Bruno ] Salut à tous,Voici en qqs mots la description d'un comportement troublant avec les composants ADO:J'utilise une Table ADO pour afficher des données en Récupérer la clé primaire d'une table [ par mik38 ] Bonjour à tous,je suis nouveau sur le forum et "sur delphi",je cherchais une fonction du genre GetIndexNames pour les index qui me renverrait la clé p Filter une table sous delphi 5 [ par bfouad ] Bonjour,Je n'arrive pas à filter une table en utilisant une variable comme critère de filter.Ex. (Nomtable.filter:='Champ = i';)ou 'Champ', c'est le n TTable: copier une table dans une autre [ par juan ] Bonjour tous, mon problème aujourd'hui, c'est que j'ai une table Table1 qui est filtrée, j'ai créé une deuxième table Table2 sans aucun enregistrement créer par programmation un index dans une table paradox [ par juan ] bjour tous, J'ai une TTable obtenue par copie (méthode batchmove) d'une autre table, et donc sans aucun index défini. Est il possible de définir cet i completer automatiquement certains champs d'une grosse TTable [ par juan ] bjour tous, j'ai 2 questions en fait: - j'ai une table remplie partiellement, mais je voudrais remplir certains champs qui sont associés à d'autres: p


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.