|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre émérite
![]() ![]() |
J'ai déjà posé cette question Dans le forum Delphi et BDd mais j'ai pas de réponse. Donc je le repost ici :
J'ai une Table dans une BDD Interbase, j'aimerais récupérer disons les 100 derniers enregistrement de cette table si la table à plus de 100 enregistrement et le tout sinon via une requête. Quelle instruction doit utilise en complement avec cette instructions Code :
__________________
On progresse ..... |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Ce n'est pas possible simplement avec Interbase 6. La version 7 le permet il me semble grace à la notions de Rows qui y a été introduit.
Donc pour en revenir à ton probleme, une solution consisterait à créer une procédure stockée qui se chargerait d'envoyer maximum 100 enregistrements. |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() ![]() |
J'avoue que j'ai pas assez de connaissance sur les procedures stocké.
Tu peux m'avancer un bout de code Barbibule. merci
__________________
On progresse ..... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Donne moi le create table de ta table T_HISTORICS
|
|
|
00
|
|
|
#5 | ||
|
Membre émérite
![]() ![]() |
Code :
Merci Barbibulle
__________________
On progresse ..... |
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Il ne me falait que le create table... mais j'ai oublié de te demander de me donner les domaines. Car hélas on ne peux utiliser les domaines dans les procédures stockées...
Domaines : D_LCLE, D_LCLE, D_SCLE |
|
|
00
|
|
|
#7 | ||
|
Membre émérite
![]() ![]() |
Oky Barbibulle voici les code des domaines
Code :
__________________
On progresse ..... |
||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Voici à quoi pourrait ressembler la procédure...
Code :
Code :
SELECT HS_DT, HS_NO, HS_TM, HS_DS_NO, HS_US_NO FROM T_HISTORICS_S; |
||
|
|
00
|
|
|
#9 | ||||
|
Membre émérite
![]() ![]() |
Citation:
1° Est ce que je peux mettre NBR_LIGNE en paramètre ? Citation:
J'ai l'habitude de travailler avec des Procedure qui me renvoi qu'une seule valeur mais pas plusieurs Comme tu l'a remarqué, je voulais avoir les resultats de ce procedure et le mettre dans un Memo pour consultation d'historique Merci encore[/quote]
__________________
On progresse ..... |
||||
|
|
00
|
|
|
#10 | ||||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Code :
Citation:
Code :
SELECT HS_DT, HS_NO, HS_TM, HS_DS_NO, HS_US_NO FROM T_HISTORICS_S(100); Code :
SELECT HS_DT, HS_NO, HS_TM, HS_DS_NO, HS_US_NO FROM T_HISTORICS_S(NULL); mettre l'ordre suivant dans un TIBDataSet ou TIBQuery ou TIBSQL Code :
SELECT HS_DT, HS_NO, HS_TM, HS_DS_NO, HS_US_NO FROM T_HISTORICS_S(:NBR); Code :
Pour ce qui est de l'exploitation du résultat je te suggère de regarder dans l'aide en ligne ou les bouquins de Delphi. et si tu n'y arrives pas vas poser tes questions dans le forum Delphi Sgbd qui est plus adapté. Pour te mettre sur la piste : une fois que ta requete est lancée (ou procédure stockée exécutée) tu vas devoir boucler tant qu'il y a des lignes (test sur IBxxxx.EOF et lire les valeurs des colonnes dans ta boucle avec IBxxxx.Fields[0] par exemple oubien avec FieldByName('HS_DT').AsString qui te convertira le tout en string... tu concatènes tes colonnes et ajoute le résultat à ton mémo. Et ne pas oublier de mettre dans ta boucle IBxxxx.next pour lire l'enregistrement suivant... Voilà de quoi t'exercer... |
||||||
|
|
00
|
|
|
#11 |
|
Membre émérite
![]() ![]() |
Merci Barbibulles
Pour l'aajout dans le memo, il n'y a pas de problème. C'etais la manière d'utiliser la procedure stocké de la BDD qui m'avait posé de problème. Encore merci
__________________
On progresse ..... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com