AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Start der Anwendung dauert ewig, 13000 Datensätze im Grid
Thema durchsuchen
Ansicht
Themen-Optionen

Start der Anwendung dauert ewig, 13000 Datensätze im Grid

Ein Thema von Gambit · begonnen am 14. Apr 2004 · letzter Beitrag vom 15. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Start der Anwendung dauert ewig, 13000 Datensätze im Grid

  Alt 14. Apr 2004, 12:17
Hallo,
ich habe eine Datenbank mit 13000 Datensätzen. Beim Start der Anwendung sollen 10 Datensätze in einem Grid angezeigt werden. Wenn ich nun eine ADOQuery oder ein ADODataSet nehme und beim Start der Anwendung als SQL-Statement Select * from tbl_test nehme, dauert es ewig, bis die Anwendung überhaupt startet. Kann man das anders machen?

Gruß

Gambit
  Mit Zitat antworten Zitat
Delphi_Fanatic

Registriert seit: 24. Mär 2004
201 Beiträge
 
#2

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 12:32
Dann beschränk' doch den Query auf eine Anzahl von einigen 100 Datensätzen.

Es ist eigentlich auch nicht üblich, gleich eine komplette Tabelle in einem Grid zu halten.
Was machst Du, wenn die Tabelle erstmal 100.000 oder gar 1.000.000 Datensätze enthält ?
Der normale Weg ist da eigentlich immer der, dass man sich nur eine bestimmte Auswahl von
Datensätzen in einem Grid anzeigen lässt.

Bedenke : Wenn Du z.B. eine Access-DB verwendest und eine Datenmenge von 13.000 Sätzen
öffnest, dann wird auch automatisch eine Kopie dieser Datenmenge über's Netz auf
den lokalen PC kopiert. Da dürfte die lange Wartezeit beim Starten kaum verwunderlich sein.

In Deinem ADODataSet gibt es eine Eigenschaft namens "CursorLocation". Wenn Du da "UseClient"
angibst, dann arbeit Dein PGM in dieser temporär erzeugten lokalen Kopie Deiner Datenmenge.
Bei "UseServer" arbeitet er eben direkt auf der DB im Netz, was bei Access nur mit Einschränkungen
funkioniert. Da wäre dann schon ein 'richtiger' Server angebracht.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#3

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 12:48
Ich hatte auch schon daran gedacht, die Anzahl der Datensätze zu beschränken. Aber wie funzt das dann mit dem Scrollen? Man muss das ja dann irgendwie so machen, dass wenn man beim letzten Datensatz angekommen ist, man die nächsten beispielsweise hundert nachläd.
Ich wundere mich immer wie das geht, ich habe hier zB. eine Programm zur Verwaltung von CDs. Dort gibt es auch eine Suchfunktion nach Titeln. Ruft man das auf, werden in einem Grid sofort 10 Datensätze angezeigt. Giebt man im Suchfeld meinetwegen ein "d" ein, werden sofort und ohne Verzögerung die Titel im Grid angezeigt, die mit diesem Buchstaben beginnen(select * from tbl where Titel like 'd%' würde viel zu lange dauern), wenn man dann weiter ein "a" angiebt, alle Titel mit "Das" usw. Runterscrollen geht auch wunderbar. Wie wird sowas realisiert?

gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 18:37
Zitat von Gambit:
Ich hatte auch schon daran gedacht, die Anzahl der Datensätze zu beschränken. Aber wie funzt das dann mit dem Scrollen? Man muss das ja dann irgendwie so machen, dass wenn man beim letzten Datensatz angekommen ist, man die nächsten beispielsweise hundert nachläd.
Du könntest mit LIMIT einschränken, wenn letzter erreicht LIMIT erhöhen.
Zitat von Gambit:
Ich wundere mich immer wie das geht, ich habe hier zB. eine Programm zur Verwaltung von CDs. Dort gibt es auch eine Suchfunktion nach Titeln. Ruft man das auf, werden in einem Grid sofort 10 Datensätze angezeigt. Giebt man im Suchfeld meinetwegen ein "d" ein, werden sofort und ohne Verzögerung die Titel im Grid angezeigt, die mit diesem Buchstaben beginnen(select * from tbl where Titel like 'd%' würde viel zu lange dauern), wenn man dann weiter ein "a" angiebt, alle Titel mit "Das" usw. Runterscrollen geht auch wunderbar. Wie wird sowas realisiert?
Du solltest Dein Grid in jedemfall vor einer Abfrage disablen, daß erhöht die Geschwindigkeit dramatisch.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#5

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 19:26
Danke!! könntest du mir das mit dem LIMIT nochmal etwas genauer erklären?

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 19:39
select * from Tabelle LIMIT 1,20
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#7

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 19:44
habe gerade mal einen kleinen Test gemacht:

Mit folgender Routine:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DBGrid1.Enabled:=false;
  ADODataSet1.Close;
  ADODataSet1.CommandText:= 'Select * from tbl_test';
  ADODataSet1.Open;
  DBGrid1.Enabled:=true;
end;
braucht es 50 Sekunden, bis im Grid überhaupt was angezeigt wird. Das kanns ja wohl echt nicht sein...

Wie das mit dem LIMIT jetzt genau umzusetzen sein soll, kann ich auch noch nicht so richtig nachvollziehen. Wenn ich den letzten Datensatz im Grid erreicht habe ne neue Select Anweisung mit erhöhtem LIMIT?

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 19:50
Zitat von Gambit:
habe gerade mal einen kleinen Test gemacht:
Entschuldigung ich habe mich wohl etwas mißverständlich ausgedrückt. Versuch mal so:
Bsp. :
Table.DisableControls
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#9

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 19:55
jo, bringt aber auch nix...aber gehen muss es irgendwie. Das Programm, welches ich oben erwähnte ist auch in Delphi geschrieben...wobei das ja nicht so der springende Punkt sein sollte...

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Start der Anwendung dauert ewig, 13000 Datensätze im Gri

  Alt 14. Apr 2004, 20:04
Zitat von Gambit:
Wie das mit dem LIMIT jetzt genau umzusetzen sein soll, kann ich auch noch nicht so richtig nachvollziehen. Wenn ich den letzten Datensatz im Grid erreicht habe ne neue Select Anweisung mit erhöhtem LIMIT?
Wenn der letzte Datensatz erreicht LIMIT durch neuen Select setzen.
Zitat:
jo, bringt aber auch nix...aber gehen muss es irgendwie. Das Programm, welches ich oben erwähnte ist auch in Delphi geschrieben...wobei das ja nicht so der springende Punkt sein sollte...
Damit kann ich im Augenblick nichts anfangen.
  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 15:00 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