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
|
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
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|