Accueil > Forum > > > > TTable : recherche de données
TTable : recherche de données
vendredi 6 février 2009 à 09:53:36 |
TTable : recherche de données

xpmich
|
bonjour, J'ai une table de quatre champs, je voudrais à partir de trois champ connu trouver la valeur du quatrième champ !j'ai essayé : if not MaTTable.Locate('T2.el_Ch1;T2.el_Ch2;T2.el_Ch3',VarArrayOf(['Renault','Rouge','1993']), [] )then begin //...pas trouvé end else //...trouvé ok mais ou va le field resultant ?? end; Les problèmes : J'ai une erreur disant : 'Field 'T2.el_Ch1' not found' J'ai essayé avec un filtre : Code : MaTTable.Filter:= '(T2.el_Ch1 like ''Renault'') AND '; MaTTable.Filter:= MaDonnee.Liste.Filter + '(T2.el_Ch2 like ''Rouge'') AND '; MaTTable.Filter:= MaDonnee.Liste.Filter + '(T2.el_Ch3 like ''1993'')'; MaTTable.Filtered := true; J'ai la même erreur. Merci d'avane. Xpmich
|
|
vendredi 6 février 2009 à 12:07:57 |
Re : TTable : recherche de données

xpmich
|
Re, J'ai trouvé la solution (qui me plait moyennement) Le premier problème était que le nom de les colonnes n'était pas bon. j'utilise donc le locate. Le second problème est lié au TTable. Si je ferme la base de données, je ne peux plus utiliser mon TTable malgré que celle ci soit une copie de mes enregistrements retournés par la requête. D'ou ma question :
Peut on utiliser une TTable de manière non connecté à une base de donnée ? soit : 1- Emmision de la requête (je sais faire) 2- Copie du résultat de la requête dans un TTable 3- Déconnexion complète de la base (pouvant aller jusqu'à mabase := nil; (je sais faire) 4- Utilisation de la copie de la TTable (je sais faire)
Merci d'avance Xpmcih
|
|
dimanche 8 février 2009 à 22:15:56 |
Re : TTable : recherche de données

cantador
|
J'ai une table de quatre champs, je voudrais à partir de trois champ connu trouver la valeur du quatrième champ ! Ce n'est pas Locate qu'il faut utiliser mais Lookup..
cantador
|
|
vendredi 7 août 2009 à 08:36:32 |
Re : TTable : recherche de données

xpmich
|
Bonjour,
pour réactualiser ma question :
Si je ferme la base de données, je ne peux plus utiliser mon TTable malgré que celle ci soit une copie de mes enregistrements retournés par la requête.
D'ou ma question :
Peut on utiliser une TTable de manière non connecté à une base de donnée ?
soit :
1- Emmision de la requête (je sais faire)
2- Copie du résultat de la requête dans un TTable
3- Déconnexion complète de la base (pouvant aller jusqu'à mabase := nil; (je sais faire)
4- Utilisation de la copie de la TTable (je sais faire)
5- Permettre de faire un locate, déconnecté de la base sur un TTable
Merci d'avance
Xpmcih
|
|
vendredi 7 août 2009 à 13:50:18 |
Re : TTable : recherche de données

beckerich
|
bonjour,
tu peux copier la table entière dans un TClientDataset et ensuite t'en servir.
Luc.
|
|
vendredi 7 août 2009 à 14:59:01 |
Re : TTable : recherche de données

xpmich
|
Re Bonjour,
Ok mais comment lié une TClientDataSet ? Je crois me souvenir qu'un TClientDataSet doit être lié à une base ? Et c'est justement ce que je ne veux pas. Mon resultat de requête arrive obligatoirement (pour moi) dans une TTable. En gros, comment faire TClientDataSet := TTable ??
Merci d'avance
Xpmich
|
|
vendredi 7 août 2009 à 15:17:00 |
Re : TTable : recherche de données

beckerich
|
salut,
j'utilise les clientdataset comme table indépendante de la base en créant, soit en mode conceptuel sous delphi, soit en dynamique pendant l'exécution, la même structure de champs que la table ou le query me retournant les données de la base.
un petit exemple d'une procédure qui récupère des données de ma base interbase et qui les insère dans un TClientDataset.
procedure TFM_FTP_LISTE.ChargerFiches;
begin
b_chargement := True;
CDS_FTP.EmptyDataSet;
CDS_FTP.IndexName := '';
with TIBQuery.Create(Self) do
begin
try
Database := GO_APP.Database;
SQL.Add('select F.*, C.*, A.PRXUNT PRXACH, V.*'
+ ' from TRPCLS C, TRPPRXACH A, TRPFTP F left outer JOIN TRPPRXVEN V'
+ ' on V.SERFTP = F.SERFTP'
+ ' where'
+ ' F.CODVIS <> :CODVIS'
+ ' and C.SERCLS = F.SERCLS'
+ ' and A.SERFTP = F.SERFTP'
+ ' and A.DATEFF = (select max(X.DATEFF) from TRPPRXACH X'
+ ' where X.SERFTP = A.SERFTP'
+ ' and X.DATEFF <= :DATEFF)'
+ ' and (V.DATEFF = (select max(Y.DATEFF) from TRPPRXVEN Y'
+ ' where Y.SERFTP = V.SERFTP'
+ ' and Y.DATEFF <= :DATEFF)'
+ ' or V.DATEFF is null)');
Prepare;
ParamByName('DATEFF').Value := SED_DATEFF.Date;
ParamByName('CODVIS').Value := '9';
Open;
while not Eof do
begin
CDS_FTP.Insert;
CDS_FTP.FieldByName('SERFTP').Value := FieldByName('SERFTP').Value;
CDS_FTP.FieldByName('LIBFTP').Value := FieldByName('LIBFTP').Value;
CDS_FTP.FieldByName('CODVIS').Value := FieldByName('CODVIS').Value;
CDS_FTP.FieldByName('CODTVA').Value := FieldByName('CODTVA').Value;
CDS_FTP.FieldByName('SERCLS').Value := FieldByName('SERCLS').Value;
CDS_FTP.FieldByName('SERPRX').Value := FieldByName('SERPRX').Value;
CDS_FTP.FieldByName('PRXACH').Value := FieldByName('PRXACH').Value;
CDS_FTP.FieldByName('PRXVEN').Value := FieldByName('PRXUNT').Value;
CDS_FTP.FieldByName('UNTVEN').Value := FieldByName('UNTVEN').Value;
CDS_FTP.FieldByName('CODCLS').Value := FieldByName('CODCLS').Value;
CDS_FTP.FieldByName('LIBCLS').Value := FieldByName('LIBCLS').Value;
CDS_FTP.FieldByName('DATEFF').Value := FieldByName('DATEFF').Value;
if (CDS_FTP.FieldByName('PRXACH').AsFloat > 0) and
(CDS_FTP.FieldByName('PRXVEN').AsFloat > 0) then
CDS_FTP.FieldByName('COFMUL').Value := CDS_FTP.FieldByName('PRXVEN').AsFloat / CDS_FTP.FieldByName('PRXACH').AsFloat;
CDS_FTP.Post;
Next;
end;
CDS_FTP.IndexName := 'ix_codcls';
CDS_FTP.First;
finally
Free;
end;
end;
b_chargement := False;
b_modif := False;
end;
consulte ceci :
http://edn.embarcadero.com/delphi/database/design
tu trouveras des articles de Cary Jensen sur les clientdatasets
|
|
Cette discussion est classée dans : ch1, t2, filter, el, mattable
Répondre à ce message
Sujets en rapport avec ce message
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
Filter à partir d'un label dans un DBGrid [ par crsi ]
Bonjour,Je cherche une méthode me permettant de filtrer des données contenue une DBGrid et se sans devoir cliquer sur un bouton, mais que le filtre s'
reqete de jointure sql avec au moin 3 tables [ par developpeur_mehdi ]
bonjours Comment peut on efféctuer une jointure entre plus de 3 tables petite exemple Code: select t2.code_machine, t2.Code_consommable from consommab
Pb avec SaveDialog.Filter [ par ToTo 44 ]
voila je d'ébute en delphi et je reprend le projet d'une personne qui touché plutot pas malAlors voila suivant ce que je sauvegarde il met pas l'exten
Au secours (Filter_Print QuickReport) [ par slim59 ]
Slt. à tous. Voila j'ai développé une application avec Delphi7, ça marchetrès bien. Voilà y'a quelque jrs. suis coinçé dans une procédureconcernant
Filtres sur un DbGrid (TQuery.filter) [ par orelien ]
Bonjour,J'aimerais appliquer un filtre sur un DbGrid relié à un TQuery à l'aide de la propriété "filter". Le filtre est définit par l'utilisateur dans
Filter avec deux critères de sélection ?! [ par crsi ]
Après le 50/50, l'appel à un ami, je demande l'avis du public ...Je voudrais filtrer une base de donnée T_clients (Nom, Prenom,Adresse,...) avec 2 cri
Filter [ par pseudoOM ]
Bonjour à tous,je voudrais appliquer un filtre à une de mes ADOTable pour que celle-ci me retourne les enregistrements qui se situent entre le 1/01 et
Propriété Filter [ par codial ]
Bonsoir,voilà je patauge lamentablement avec cette syntaxe et j'ai beau chercher je ne trouve que des exemples avec un champ alors je vous la propose
Filtrer une table [ par codial ]
Bonjour,Je veux créer un filtre pour extraire dans les enregistrements d'une table une sous chaine d'une chaine avec : Table1.FilterOptions:=[foCase
Livres en rapport
|
Derniers Blogs
MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|