FD c'est de la m....
Le TFDQuery bride le résultat à 50 enreg par défaut ?!
Stupide, trompeur, parce que non conforme à SQL, et parfaitement inutile.
Non mais, des fois qu'on ne soit pas capable de le faire en SQL![]()
FD c'est de la m....
Le TFDQuery bride le résultat à 50 enreg par défaut ?!
Stupide, trompeur, parce que non conforme à SQL, et parfaitement inutile.
Non mais, des fois qu'on ne soit pas capable de le faire en SQL![]()
Ce post aurait plus sa place dans https://www.developpez.net/forums/f7...bases-donnees/.
Et non, TFDQuery n'est pas bridé, du moins pas comme ce message semble le dire. La lecture de la doc, ça aide
Il suffit de modifier le comportement en modifiant les FetchOptions de la connexion ou de la Query plus spécifiquement
FetchOptions.mode=fmAll
Toutefois, sur un gros ensemble de données mode=fmOnDemand est intéressant pour peu que l'on découvre l'instruction FDQuery.GetNextPacket ou FetchNext (Il doit y avoir une différence subtile entre les deux) . N'oublions pas aussi le FDQuery1.FetchAll
en exemple à tester :
ce qui va produire la même chose qu'un SQL utilisant ROWS et TO (ou SELECT FIRST 50 SKIP x * FROM) nécessitant un SQL avec des paramètres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TForm16.Button1Click(Sender: TObject); begin FDQuery1.FetchOptions.Mode:=TFDFetchMode.fmOnDemand; // s'assurer que c'est en fmOnDemand if FDQuery1.Active then FdQuery1.FetchNext else FdQuery1.Open; Showmessage(fdquery1.RecordCount.ToString); end;
par exemple ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 FDQUery1.SQL.TEXT:='SELECT SKIP :r FROM TABLE ROWS 50'; FDQuery.Open('',[0]); FDQuery.Open('',[50]); etc..
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager