Filter, trie sur Date

Résolu
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 10 juin 2008 à 10:34
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 11 juin 2008 à 15:48
Bonjour,

J'utilise un TibTable pour afficher le contenu d'une table.
J'y applique un filtre pour afficher une ligne voulu, mais une erreur se produit a cause du ORDER BY. Or je voudrais filtrer et également appliquer un trie sur la colonne date.
            Filter :'CodeSicav '''+qrSicavCode.AsString+''' AND Etat = ''P'' AND NomCpt = '''+cbCompte.Text+''' ORDER BY Achat ASC';
            Filtered := True;

Comment faire cela ?

Merci pour l'aide.

7 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 juin 2008 à 17:42
ah yès, ces compos que je n'utilise pas sont en lecture seule..

Tu dois te servir du composant additionnel : IBUpdateSQL.

cantador
3
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
11 juin 2008 à 08:47
En effet en liant mon TibQuery avec un TibUpdateQuery, je peux faire un select, me positionner sur l'enregistrement voulu et faire la modification.

SQL.Clear;
SQL.Add('SELECT....FROM....WHERE....AND....ORDER BY....');

Open; First;
Edit;
   ...
   FieldByName('Vente').AsDateTime := deVal.Date;
   ...
Post;
Close;

 Merci Cantador pour l'aide...
3
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
10 juin 2008 à 14:03
Oki merci, j'avais un doute mais j'ai quand meme voulu poser la question.
Donc, je vais utiliser un TibQuery.

Par contre, est-il possible avec une requete Select, une fois positionné sur le 1er enregistrement par exemple (avec First) de modifier cette ligne ?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 juin 2008 à 14:28
En principe, la table se met par défaut à l'ouverture sur le premier enregistrement
(même sur une requête filtrante avec tri)

et bien sûr, il est tout à fait possible de se positionner sur un enregistrement particulier (premier, dernier ou un autre avec la méthode locate)

et de procéder à une modification de l'ensemble des champs de cet enregistrement par les méthodes classiques (edit et post)

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
10 juin 2008 à 15:39
Ok, en gros, j'ai fais ceci :

  SQL.Clear;
  SQL.Add('Select...From...Where...And...Order by...');

  Open; First;
  //Je me positionne sur le 1er enreg et souhaite modifier cette ligne meme avec
  
  Edit;
     ...
     FieldByName('Vente').AsDateTime := deVal.Date;
     ...
  Post;

  Close;

Apparemment ceci marche pas, ou alors il me manque quelque chose ou j'ai une erreur. J'ai ce message d'erreur : "Impossible de modifier un ensemble de données en lecture seule".
0
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
11 juin 2008 à 11:58
J'ai trouvé une autre solution qui marche aussi bien.

Je garde mon IBTable, je l'ouvre, j'applique un filtre et à ce moment là, avant de faire un First pour me positionner sur le 1er enregistrement, j'utilise IndexFieldNames := 'DATE'. Ce qui me permet d'indexé la colonne date.
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 juin 2008 à 15:48
avec TIBTable, tu peux même débrancher UpDateObject !
et sur une autre table CUSTOMER par exemple :
  IBTable1.Edit;
  IBTable1LASTINVOICEDATE.AsDateTime := DateTimePicker1.DateTime;
  IBTable1.Post;
Le TIBTable est possible mais cela dit dès que ta base se complique, on est obligé de passer en Query..

Ces compos ne sont néanmoins pas terribles à l'usage..

cantador
0
Rejoignez-nous