AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wechsel von TTable zu TQuery
Thema durchsuchen
Ansicht
Themen-Optionen

Wechsel von TTable zu TQuery

Ein Thema von MPirnstill · begonnen am 4. Nov 2005 · letzter Beitrag vom 7. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#1

Wechsel von TTable zu TQuery

  Alt 4. Nov 2005, 08:43
Datenbank: MS-SQL-Server • Version: 2000 • Zugriff über: BDE
Hi Leute!

Ich habe ein kleines Performance-Problem. Meine Anwendung verwaltet Studenten. In der Haupttabelle sind ca. 12000 Datensätze (und in Folge-Tabellen ca. 13 Folgesätze mit Ergebnissen usw. je Prüfling). Die Anwendung läuft auch recht flüssig. So jetzt gibt es ein neues Gesetz und die Prüflinge werden nach anderen Gesetzesgrundlagen geprüft. Ein Feld zur Kennzeichnung dieses Verfahren hab ich. Doch wenn ich jetz einen Filter setze wird das ganze schweine-langsam.
Okay, jetzt sagt ihr wahrscheinlich nimm doch TQuery, das will ich auch gerne tun, doch ich nutze bei der TTable die Methode Findkey um über den PI zu positionieren. Wie mache ich das am besten mit TQuery, denn da gibt es ja kein Findkey? Habe da irgendwie ein Brett vorm Kopf.

Würde mich über 'ne gute Idee freuen. Vielen Dank im Voraus.
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Wechsel von TTable zu TQuery

  Alt 4. Nov 2005, 08:48
Probiers mal mit Locate anstatt FindKey.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Wechsel von TTable zu TQuery

  Alt 4. Nov 2005, 09:10
Du kannst auch in Query durch Casten auf TTable mit Findkey arbeiten, es ist allerdings etwas gefährlich und setzt voraus, dass Du einen entsprechenden Index mit order by definiert hast:
TTable(Query1).FindKey(Id);
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Wechsel von TTable zu TQuery

  Alt 4. Nov 2005, 15:32
Zitat von MPirnstill:
Ein Feld zur Kennzeichnung dieses Verfahren hab ich. Doch wenn ich jetz einen Filter setze wird das ganze schweine-langsam.
Wird vermutlich daran liegen das der Filter-Client-Seitig durchgeführt wird. Sprich der gesamte Datenbestand wird zum Client geschickt und erst dort analysiert.

Zitat von MPirnstill:
Okay, jetzt sagt ihr wahrscheinlich nimm doch TQuery, das will ich auch gerne tun, doch ich nutze bei der TTable die Methode Findkey um über den PI zu positionieren. Wie mache ich das am besten mit TQuery, denn da gibt es ja kein Findkey? Habe da irgendwie ein Brett vorm Kopf.
Wenn schon umbauen dann richtig. Schmeiß BDE mit TDatabase/TTable und TQuery komplett raus und welchel auf ADOExpress/dbGo (Noch besser wäre natürlich direkt auf die ADO-Native-Kompontenten) und bau dein Programm konsequent darauf um das solche Filterungen per SQL von der Datenbank erledigt werden. Bei geeigneten Indexen auf der Datenbank ist das auch sehr performant.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#5

Re: Wechsel von TTable zu TQuery

  Alt 7. Nov 2005, 07:06
Hi!

Erst mal vielen Danke für euere Antworten.

@Jelly
Danke für den Hinweis! Stimmt Locate gibt es ja auch, hatte ich irgendwie ganz vergessen. Werde mal ausprobieren, ob es damit geht.

@Union
Falls das mit dem Locate nicht klappt, wenn die TQuery nach TTable caste, wie muß ich diesen Index angeben. Reicht das, wenn ich einfach in Order By die beiden Primär-Index-Felder der Tabelle angebe?

@Bernhard
Generell gebe ich dir recht. Würde auch eine andere Zugriffsmethode für Datenbanken wählen, wenn ich ein neues Programm erstellen würde, aber dies ist eine bestehende, komplexe Anwendung (und auch noch in Delphi 2.0) und jetzt auf ADO oder dbGO umzustellen ist von der Zeit her nicht drin.

Zitat:
Wird vermutlich daran liegen das der Filter-Client-Seitig durchgeführt wird. Sprich der gesamte Datenbestand wird zum Client geschickt und erst dort analysiert.
Oder könnte man auch irgendwie über die BDE veranlassen, daß die Filterung Server-seitig durchgeführt wird?

Gruß
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Wechsel von TTable zu TQuery

  Alt 7. Nov 2005, 07:24
Zitat von MPirnstill:
Oder könnte man auch irgendwie über die BDE veranlassen, daß die Filterung Server-seitig durchgeführt wird?
Ja, aber dann bist Du wieder bei TQuery. Mit TTable geht das definitiv nicht. Und wenn Du nun schon nach Query wechselt, dann machs wirklich gleich über ADO und vergiss die BDE ganz schnell.
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#7

Re: Wechsel von TTable zu TQuery

  Alt 7. Nov 2005, 07:48
Zitat von Jelly:
Ja, aber dann bist Du wieder bei TQuery. Mit TTable geht das definitiv nicht. Und wenn Du nun schon nach Query wechselt, dann machs wirklich gleich über ADO und vergiss die BDE ganz schnell.
Leider betrifft dies 2 bestehende Anwendungen die beide so um die 44000 Zeilen Programmcode (lt. Delphi-Compiler) haben und außerdem habe ich mit ADO noch keine Erfahrung und kann mir irgendwie nicht vorstellen, daß mit Delphi 2.0 auf die schnelle so einfach wäre. An der Delphi Version kannst vielleicht auch erkennen, daß die Anwendungen schon einige Zeit im Einsatz sind. Ich wollte schon mal auf Delphi 7 gehen, daß die Entwicklungsumgebung viel komfortabler ist als in D2, jedoch hätte ich dann mal so zwischendurch 40 nicht simple Quick-Report neu machen müssen. Vielleicht bei der nächsten Änderung der Ausbildungsverordnung.

Gruß
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Wechsel von TTable zu TQuery

  Alt 7. Nov 2005, 08:09
Laut deinem Profil nutzt du Delphi 2005 Enterprise. Wie soll ich erahnen dass Du Delphi 2 für die Anwendung verwendest... Ich glaube nicht dass Du mit Delphi 2 überhaupt ne Chance hast, ADO zu nutzen. Zumindest sind die VCL Komponenten nicht vorhanden.

Dann bleibt Dir also statt TTable die TQuery Kompo zu nehmen, und weiterhin bei der BDE zu bleiben. So tragisch ist das nun auch nicht, arbeite selbst noch an einem recht aufwendigen Projekt auf Basis der BDE.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Wechsel von TTable zu TQuery

  Alt 7. Nov 2005, 08:18
Zitat von MPirnstill:
Ich wollte schon mal auf Delphi 7 gehen, daß die Entwicklungsumgebung viel komfortabler ist als in D2, jedoch hätte ich dann mal so zwischendurch 40 nicht simple Quick-Report neu machen müssen.
Quickreport ist doch AFAIK bei D7 auch dabei. Jedoch werden die entsprechenden Packages defaultmässig nicht in der IDE installiert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: Wechsel von TTable zu TQuery

  Alt 7. Nov 2005, 08:19
Zitat von Jelly:
Laut deinem Profil nutzt du Delphi 2005 Enterprise.
Sorry, ich hatte vergessen, dies mit in den Post zu schreiben. Aber ich hatte es in meiner Antwort erwähnt, allerdings in dem Part für Bernhard. D2005 bzw. D8 ist mal für Web-Programmierung angedacht gewesen, jedoch wurde das erstmal wieder auf Eis gelegt. Und wenn das Web-Projekt wieder aufgeriffen wird, wird es wohl mit Visual Studio sein, da D8 so rottig war. Mein Chef hatte zwar noch den Update auf 2005 geholt, ab aufgrund anderer Arbeiten konnte ich noch nicht richtig testen, ob das jetzt besser ist als D8.

Vielen Dank noch mal.
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  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 11:04 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