Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 15. Jul 2004, 12:47
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 von trifid:
oder die Kompo's von TADOBetterDataSet ?
Könnte sein; weiss nicht.
Andererseits könntest du auch mal versuchen:
   ADOQuery1.RecordSet.MaxRecords := 100;
Andreas
  Mit Zitat antworten Zitat