Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MaxRecords wird in ADOQuery ignoriert (https://www.delphipraxis.net/25884-maxrecords-wird-adoquery-ignoriert.html)

trifid 15. Jul 2004 10:33

Re: MaxRecords wird in ADOQuery ignoriert
 
vielleicht ist es anders bei einen TADODataSet
oder die Kompo's von TADOBetterDataSet ?

Nalincah 15. Jul 2004 12:22

Re: MaxRecords wird in ADOQuery ignoriert
 
Zitat:

Zitat von trifid
einen
SQL-Code:
SELECT Count(*) FROM Tabelle
würde ich immer einen ADO.RecordCount oder ADO.MaxRecords vorziehen :!:

Toll, da steht dann wieviel Datensätze in der Tabelle vorhanden sind, kann sie aber nicht beschränken.

shmia 15. Jul 2004 12:47

Re: MaxRecords wird in ADOQuery ignoriert
 
Zitat:

Zitat von trifid
vielleicht ist es anders bei einen TADODataSet ?

Das Bug wurde schon in TCustomADODataSet eingeführt. :?
siehe Unit ADODB.pas Line 3445 ff:
Delphi-Quellcode:
  procedure InitializeRecordset;
  begin
    FRecordsetObject := CreateADOObject(CLASS_Recordset) as _Recordset;
    Recordset.CursorLocation := CursorLocationValues[FCursorLocation];
    Recordset.CacheSize := FCacheSize;  // <-------
    Recordset.MaxRecords := FMaxRecords; // <-------
    if FIndexName <> '' then
    begin
      Recordset.Index := FIndexName;
      RefreshIndexFields;
    end;
    EnableEvents;
  end;

var
  VarRecsAffected: OleVariant;
begin
  if not Assigned(Recordset) then
  begin
    InitializeConnection;
    // InitializeRecordset wird nur aufgerufen, wenn noch kein Recordset erzeugt wurde.
    // blöderweise werden dabei auch CacheSize & MaxRecords zugewiesen
    // 
    InitializeRecordset;
    Recordset.Open(Source, ActiveConnection,
      CursorTypeValues[FCursorType], LockTypeValues[FLockType],
      CommandTypeValues[CommandType] + ExecuteOptionsToOrd(ExecuteOptions));
Zitat:

Zitat von trifid
oder die Kompo's von TADOBetterDataSet ?

Könnte sein; weiss nicht.
Andererseits könntest du auch mal versuchen:
Delphi-Quellcode:
   ADOQuery1.RecordSet.MaxRecords := 100;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz