AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MaxRecords wird in ADOQuery ignoriert
Thema durchsuchen
Ansicht
Themen-Optionen

MaxRecords wird in ADOQuery ignoriert

Ein Thema von Nalincah · begonnen am 14. Jul 2004 · letzter Beitrag vom 15. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#1

MaxRecords wird in ADOQuery ignoriert

  Alt 14. Jul 2004, 11:27
Auszug:
Delphi-Quellcode:
  
...
ExportQuery.DisableControls;
ExportQuery.MaxRecords := 200;
ExportQuery.Close;
ExportQuery.SQL.Text := Query.SQL.Text;
ExportQuery.Open;
ShowMessage(IntToStr(ExportQuery.MaxRecords)+', '+IntToStr(ExportQuery.RecordCount));
FrmSQLVorschau.MemoVorschau.Clear;
ExportQuery.First;
...
Das Problem ist: MaxRecords und RecordCount ist nicht gleich. Müsste doch eigentlich beides "200" sein, oder?? Der lädt immer 9089 Datensätze

Was hab ich falsch gemacht?
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#2

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 14. Jul 2004, 12:37
*push*

[edit=Sharky] Nach 70 Minuten zu pushen ist ja wohl der Hammer! Bitte halte dich an die Regeln. Mfg, Sharky[/edit]

[edit]SORRY[/edit]
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 14. Jul 2004, 13:31
Ich vermute mal einen Implementierungsfehler der ADOExpress-Komponenten. Falls Du MS-SQL-Server verwendest, so schau mal mit dem SQl-Profiler auf die erzeugten Anweisungen
Einfacher ist es deine Anweisung mit TOP xyz zu versehen.
Code:
SELECT TOP 200 FROM xyz
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 14. Jul 2004, 13:45
Zitat von Bernhard Geyer:
Einfacher ist es deine Anweisung mit TOP xyz zu versehen.
Code:
SELECT TOP 200 FROM xyz
Das ist auch für den DB Server einfacher
Wenn man ihm einen StopKey verpasst sieht der Query Plan meist ganz anders aus.
Für < 100/200 Einträge wird er wohl nicht auf Durchsatz, sondern auf Antwortzeit optimieren. MaxRecords in ADO wird wahrscheinlich im Normalfall alle späteren DS ignorieren.
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#5

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 14. Jul 2004, 14:15
Ich benutzt aber SAP DB 7.4 und das kennt kein TOP

Mit der ADOTable klappt es auch nicht
Hab mal ein Beispielprog drangehängt

Die Connection müsste dabei angepasst werden
Angehängte Dateien
Dateityp: rar adoquery___recordcount_test_197.rar (6,5 KB, 8x aufgerufen)
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 15. Jul 2004, 08:15
Zitat von General2004:
Ich benutzt aber SAP DB 7.4 und das kennt kein TOP
Evtl. gibt es einen entsprechenden ersatz. Schau mal die Doku durch.
Zitat von General2004:
Mit der ADOTable klappt es auch nicht
Hab mal ein Beispielprog drangehängt
Die Connection müsste dabei angepasst werden
1, Das Beispielprogramm konnte ich nicht öffnen (hab nur ~dsk-Datei gesehen). Kannst Du es evtl als ZIP anlegen?
2, Ich habe es mit einem eigenen Testprogramm mit MS-SQL 2000 probiert und da funktioniert es problemlos.
Evtl. unterstützt der OLEDB-Profider von SAP DB das gewünschte nicht bzw. hat 'ne Macke.
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#7

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 15. Jul 2004, 09:18
Neue Version...
Angehängte Dateien
Dateityp: zip project1_712.zip (313,9 KB, 6x aufgerufen)
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 15. Jul 2004, 09:47
Keine Problem. Liefert 200 al RecordCount (bei MS-SQL über ODBC). Also wirds am Treiber für die SAP-DB liegen
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#9

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 15. Jul 2004, 09:51
einen
SELECT Count(*) FROM Tabelle würde ich immer einen ADO.RecordCount oder ADO.MaxRecords vorziehen
  Mit Zitat antworten Zitat
shmia

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

Re: MaxRecords wird in ADOQuery ignoriert

  Alt 15. Jul 2004, 10:49
Zitat von General2004:
Das Problem ist: MaxRecords und RecordCount ist nicht gleich. Müsste doch eigentlich beides "200" sein, oder?? Der lädt immer 9089 Datensätze
Die ADO-Express Komponenten von Borland haben einen Bug:
Bei der ersten Verwendung einer ADOQuery wird das Property MaxRecords auf das unterliegende RecordSet
übertragen.
Spätere Änderungen von MaxRecords werden ignoriert.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz