AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DBGrid hängt manchmal bei zugriff auf Tabelle über Datasourc
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid hängt manchmal bei zugriff auf Tabelle über Datasourc

Ein Thema von Tempdir · begonnen am 22. Apr 2009 · letzter Beitrag vom 22. Apr 2009
Antwort Antwort
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#1

DBGrid hängt manchmal bei zugriff auf Tabelle über Datasourc

  Alt 22. Apr 2009, 08:52
Datenbank: TurboDB • Version: 5.16 • Zugriff über: TurboDB-Komponenten
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:
    //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
Also ich schreibe meine Empfangenen Daten einfach in eine Tabelle, welche mit einer TurboDB-Datenbank verknüpft ist, und Poste diese dann.

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:
    //Dem Datasource auf dem "Monitor"-Formular die Tabelle von oben zuweisen
    DataSource1.DataSet := UnitMain.TdbTable[ClientID];
Mein Problem:
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!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: DBGrid hängt manchmal bei zugriff auf Tabelle über Datas

  Alt 22. Apr 2009, 08:59
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
Heiko
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#3

Re: DBGrid hängt manchmal bei zugriff auf Tabelle über Datas

  Alt 22. Apr 2009, 09:52
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
  Mit Zitat antworten Zitat
Tempdir

Registriert seit: 19. Feb 2009
Ort: Karlsruhe
84 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: DBGrid hängt manchmal bei zugriff auf Tabelle über Datas

  Alt 22. Apr 2009, 10:03
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:

frmMonitor.Show; an. Schließen ganz normal über:

  Close; Damit klappt es BISHER super - mal sehen was noch kommt. Danke für die Hilfe !!
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:59 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