![]() |
Datenbank: TurboDB • Version: 5.16 • Zugriff über: TurboDB-Komponenten
DBGrid hängt manchmal bei zugriff auf Tabelle über Datasourc
Hallo,
ich habe ein seltsames Problem das mich schon viel Zeit gekostet hat: Auf meinem Hauptformular habe ich eine Routine die beim Empfang von Daten über Netzwerk ausgelöst wird. In dieser Routine werden dann die Daten über eine Tabellen-Komponente in eine Datenbank gespeichert - etwa so:
Delphi-Quellcode:
Also ich schreibe meine Empfangenen Daten einfach in eine Tabelle, welche mit einer TurboDB-Datenbank verknüpft ist, und Poste diese dann.
//Neuen Datensatz einfügen
TdbTable[ClientID].Append; //Datensatz mit Daten füllen for I := 1 to (Datalength) do begin TdbTable[ClientID].Fields[i].Value := Data[i]; end; //Datensatz in Datenbank speichern TdbTable[ClientID].Post; //Hinweis: TdbTable ist dabei ein Array von mehreren Tabellen-komponenten Während all dies geschieht kann man ein anderes Formular (Monitor) aufrufen, das den Inhalt der Datenbank anzeigt. Dieses "Monitor"-Formular verfügt über ein DBGrid und eine Datasource-Komponente. Diese Datasource-Komponente ist direkt mit der obigen Tabelle verknüpft:
Delphi-Quellcode:
Mein Problem:
//Dem Datasource auf dem "Monitor"-Formular die Tabelle von oben zuweisen
DataSource1.DataSet := UnitMain.TdbTable[ClientID]; Es werden permanent Daten empfangen und gepostet. Wenn ich jetzt die Monitor-Form aufrufe sehe ich, dass das DBGrid ständig mit den neu erhaltenen Daten gefüllt wird. Allerdings kommt es öfters mal vor, dass beim Aufruf der Monitor-Form das DBGrid sich nicht aktualisiert und das Hauptformular im Hintergrund dann seinen Dienst einstellt (verarbeitet nicht mehr die empfangenen Daten). Das passiert besonderst wenn sehr viele Daten/Sekunde ankommen. Ich wär für jeden Tipp sehr dankbar! |
Re: DBGrid hängt manchmal bei zugriff auf Tabelle über Datas
Hallo,
trenne die beiden Sachen durch Nutzung von 2 Tabellen. Wurden Daten neu eingetragen, kannst du Table_DBGrid.Refresh aufrufen, um die Daten im DBGrid zu aktualisieren. Alternativ kannst du das DBGrid während des Eintragens in die Tabelle auch "abkoppeln" (DisableControls aufrufen). Heiko |
Re: DBGrid hängt manchmal bei zugriff auf Tabelle über Datas
Danke für die Tipps, leider konnte keiner das Problem lösen. Allerdings bin ich jetzt ein Stück weiter gekommen. Meine Empfangsroutine (UDPRead - Indy UDP Komponente) friert manchmal nach Aufruf meines Monitor-Formulars ein, bzw. wird nicht mehr ausgelöst.
Mal schaun wie ich das Problem in den Griff bekomme ... hmm |
Re: DBGrid hängt manchmal bei zugriff auf Tabelle über Datas
Das Problem scheint gelöst zu sein!!! :)
Ich habe mein Monitor-Formular bisher zur Laufzeit erzeugt. Das Problem hierbei war dass ich "ShowModal" benutzt habe. Lösung: Das Formular wird jetzt automatisch erzeugt, und ich zeige es nun per:
Delphi-Quellcode:
an. Schließen ganz normal über:
frmMonitor.Show;
Delphi-Quellcode:
Damit klappt es BISHER super - mal sehen was noch kommt. Danke für die Hilfe !!
Close;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 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