Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mehrere TTable auf die gleiche Tabelle? (https://www.delphipraxis.net/90545-mehrere-ttable-auf-die-gleiche-tabelle.html)

Surrounder 19. Apr 2007 11:03

Datenbank: Nexus DB • Version: 2.05 • Zugriff über: TDataSet / direkt

Mehrere TTable auf die gleiche Tabelle?
 
Ist es möglich mehrere TTable ( also bei mir eben TnxTable ) auf die gleiche Tabelle zeigen zu lassen?

Die Idee hatte ich deshalb, weil meine Software im Hintergrund ständig die Tabelle mit aktuellen Datensätzen aktualisiert ( Filter / Ranges / Locates ) und deshalb mein cxgrid indem ich den Inhalt der Tabelle anzeige ständig springt. Dadurch wird aber auch meine ganze Anwendung wahnsinnig langsam. Deshalb habe ich zuerst veruscht das cxgrid zu stoppen und dem zu sagen dass es sich nicht mehr aktualsierien soll. Das geht nur leider nicht. Deshalb bin ich jetzt auf die vielleicht irrsinnige Idee gekommen ob es nicht möglich ist einfach eine zweite TTable und eine zweite DataSource in mein Modul zu nehmen und dadurch das ganze zu entkoppeln.

Ich habe das bei mir versucht, bekomme dann aber immer bei einer der Tabellen eine Exception nach ca. 10 Sekunden dass diese die Verbindung zur Datenbank verloren hat.

Geht so etwas gar nicht? Oder muss ich irgendetwas beachten? Vielleicht hat jemand auch eine andere Idee, bin dankbar für jeden Hinweis.

Ach ja das kopieren der Tabelle in eine Memtable würde eventuell auch noch gehen, aber das habe ich bisher vermieden, denn die komplette Datenbank besteht aus 8 Tabellen wo teilweise Felder für andere als Mastersource dienen.

Danke für eine kurze Info.

mkinzler 19. Apr 2007 11:11

Re: Mehrere TTable auf die gleiche Tabelle?
 
Wenn Nexus keine mehrer TTable-Objekte auf eine Tabelle zulässt, könntest du es ja mit TQuery(s) versuchen.

Surrounder 19. Apr 2007 13:34

Re: Mehrere TTable auf die gleiche Tabelle?
 
ok ich habe es gefunden, nexus kann mehrere Tabellen auf eine physikalische Tabelle setzen.

Mein Problem war folgendes:

Ich habe um einfacher Debuggen zu können beim start abgefragt ob ich die Application im debugger starte oder nicht. Wenn ich im Debugger bin dann setze ich das Heartbeatinterval auf 0 und aktiviere dann alle meine Komponenten. Das ist so weit erst auch einmal ok. Jetzt habe ich zum Test eine weitere Tabelle auf das Datamodul gesetzt und weil ich das nur testen wollte habe ich dort direkt in den Properties die Tabelle auf Active gesetzt. Das Problem dabei ist dass durch diese Tabelle wohl die Transportschichten auch aktiviert werden und somit das setzten des Heartbeatintervals im Quellcode zu spät kommt. Dadurch kommt es dann zu einer Exception, aus der man leider nicht eindeutig erkennen kann dass es nicht an der zweiten tabelle liegt.

hoika 19. Apr 2007 14:05

Re: Mehrere TTable auf die gleiche Tabelle?
 
Hallo,

> Deshalb habe ich zuerst veruscht das cxgrid zu stoppen
> und dem zu sagen dass es sich nicht mehr aktualsierien soll. Das geht nur leider nicht.

Warum sollte das nicht gehen ?.
Beim normelne Grid geht es auch (DataSource.DisableControls).


Heiko

Surrounder 19. Apr 2007 14:27

Re: Mehrere TTable auf die gleiche Tabelle?
 
Ah ja sorry da habe ich mich vielleicht falsch ausgedrückt, ich will das Grid so deaktivieren dass es sich nur nicht mehr aktualisiert. Der Bediener soll weiterhin sich die Datensätze anschauen und auch in der scrollen können. Ich hatte zumindest von DevExpress Support die Info bekommen dass das nicht geht. Wenn man das cxgrid egal wie deaktiviert dann gefriert auch die Ansicht und man kann auf dem Fenster auch nichts mehr machen

mkinzler 19. Apr 2007 14:43

Re: Mehrere TTable auf die gleiche Tabelle?
 
Dann schau dir mal die ClientDataSet-Komponente an.

hoika 19. Apr 2007 14:52

Re: Mehrere TTable auf die gleiche Tabelle?
 
Halo,

dann ist es in der Tat mit 2 TTable am einfachsten.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.

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