AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verursacht DBEdit viel Traffic im SQL Server?
Thema durchsuchen
Ansicht
Themen-Optionen

Verursacht DBEdit viel Traffic im SQL Server?

Ein Thema von rbest · begonnen am 14. Nov 2003 · letzter Beitrag vom 24. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
rbest

Registriert seit: 14. Nov 2003
Ort: Tannheim
71 Beiträge
 
Delphi 7 Professional
 
#1

Verursacht DBEdit viel Traffic im SQL Server?

  Alt 14. Nov 2003, 07:02
Hallo Kollegen. Ein Kollege behauptet, dass die DBEdit-Komponenten sehr viel DB-Traffic verursachen, und zwar jeder Mausklick ins Feld. Ist da was dran oder ist es nicht so, dass die DB nur bei open oder post, usw. abgerufen wird? Wer kann mir dazu konkrete Tips geben? Besten Dank im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 14. Nov 2003, 07:13
Hallo rbest,

zunächst erst einmal herzlich willkommen in der Delphi-Praxis.
Ich kann mir nicht vorstellen, dass ein einfaches Anklicken eines DBEdit-Feldes Traffic erzeugt. Wenn Dir die Daten angezeigt werden, dann hast Du ja vorher ein SQL SELECT an die Datenbank geschickt und eine Antwortmenge erhalten. Genau diese wird in den den datensensitiven Controls angezeigt. Traffic wird erzeugt, wenn Du Änderungen an die DB zurückschreibst bzw. wenn weitere Datensätze nachgeladen werden, da Du durch die Datensätze browsed (ein scheußliches Denglisch ).
  Mit Zitat antworten Zitat
rbest

Registriert seit: 14. Nov 2003
Ort: Tannheim
71 Beiträge
 
Delphi 7 Professional
 
#3

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 21. Nov 2003, 11:42
hi r_kerber,
danke für die schnelle Nachricht, bis jetzt habe ich noch nichts unternommen. Mittlerweile kann ich das angebliche Problem näher definieren. Und zwar soll es innerhalb kurzer Zeit auf der DB (wir verwenden MS SQL Server) sehr viele Sperren geben, wenn man die DBEdit-Komponenten verwendet.
Schönes Wochenende!
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 21. Nov 2003, 12:15
Hallo rbest,

Sperren sollte es eigentlich nur geben, wenn die Datenmenge in den Edit-Modus versetzt wird. Interessant wäre zu wissen, ob Du auf die Datenbank mit TTable oder TQuery zugreifst. Bei TTable könnte ich mich mir vorstellen, dass ein Ändern des Wertes im DBEdit implizit ein Setzen in den Edit-Modus auslöst.
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 21. Nov 2003, 12:20
Hi,

hat dieser Kollege öfter komische Träume, ich meine, welchen Grund führt er eigentlich für seine Argumentation an.

Also, die datensensitiven Komponenten, und insbesondere DBEdit sind für Zugriffe auf die Datenank ja nicht verantwortlich, sondern die von Tdataset abgeleiteten Komponenten handeln das.

Ein einfacher Versuch: Netzwerkabel abziehen zeigt, Datenbankzugriffe nur beim Datenabholen oder beim Zurückschreiben, zwischendurch kann man auf dem Client machen was man will, und nach Lust und Laune in den TDBedits rumklicken. Mit dem TClientdataset oder dem Remotefähigkeiten von ADO kann man das noch weiter entkoppeln und stärker kontrollieren

Grüsse
Woki
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#6

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 22. Nov 2003, 09:49
So allgemein kann man hierzu keine Antwort geben. Der Einsatz von TTable bei SQL Server Datenbanken ist auf jedenfall nicht zu empfehlen. Im Extremfall sperrst Du die gesamte Tabelle für andere Benutzer solange Deine TTable aktiv ist (hängt von Deinem Transaktionstyp ab).

Versuch es mal mit einer Query Komponente und einem Client Dataset (falls Deine Delphi Version dies unterstützt). Die Daten werden dann auf Deinem Client zwischengespeichert. Zugriffe auf die Datenbank erfolgen dann nur noch bei Änderungen eines Datensatzes. Achte auch darauf das Du die Transaktion zum SQL Server so schnell wie möglich beendest.

Gruß,
Marcel
Marcel Gascoyne
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 22. Nov 2003, 10:19
Hallo Marcel!

Ich stimme Dir völlig zu und gehe sogar noch einen Schritt weiter. Ich setzte in meinen Interbase C/S Anwendungen nur TIBDatabase, TIBTransaction und TIBSQL ein. Sämtliche Änderungen werden über Stored Procedures durchgeführt. Datensensitive visuelle Kompos befinden sich nicht mehr in meiner Komponentenpalette. Stattdessen nutze ich intensiv ein aufgebohrtes Listview.

Was soll ich sagen, die Resonanz der Anwender gibt mir recht. Wenn bei jedem Tastendruck / Mausklick die SQL-Eieruhr kommt, wird das "bad day" Video in so manchem Büro bittere Realität. Ein guter Test ist es auch, das Mauskabel durchzuschneiden ...

Gruss

OLLI
No Pain No Gain!
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 23. Nov 2003, 10:26
Hallo,

also etwas läßt sich aber ganz allgemein sagen, nämlich daß die datensensitven Komponenten, also die des Tabs Datensteuerung der Komponentenpalette (tdbedit, tdbmemo, ...), absolut nichts mit unnötigen Zugriffen auf die Datenbank, Datensatzsperren, Transaktionsmechanismen, dem Erscheinen des SQL-Cursors, usw zu tun haben. Die wissen überhaupt nichts von der Existenz von Datenbanken, und arbeiten auch mit abkömmlingen von TDataset zusammen (Memorydatasets, z.B. TRXMemorydataset, tdxmemdataset, TClientdataset...), die selber nichts von Datenbanken wissen.

Der Einsatz von TDBEdit und Konsorten hat mit Problemen der hier geschilderten Art absolut nichts zu tun, und deshalb löst ein Verzicht auch nichts.

Auf den richtigne Einsatz der Datenzugriffs- und Verbindungskomponenten kommt es da schon eher an. Also in Verbindung mit SQL-Servern keine TTable-komponenten.In Verbindung mit dem SQL-Server empfiehlt sich ADO, am besten TBetterAdoDataset, mit Commandtype cmdText.
Nun kann man nach dem Laden den Netzwerkstecker ziehen, und alles tun, außer Post oder Refresh, inclusive scrollen, edit und undo, ohne daß der Client daß merkt, wie aber ein Client bei abgezogenem Netzwerk Sperren auf dem Server macht, müßte mir mal jemand erklären. Sollte das aber immer noch nicht reichen, kann man dieses Dataset auch in einem Remotemodus betreiben, genau wie TClientdataset, dann kan man sogar lokal posten, ohne den Server zu belästigen, und dann nur zu einem akkumulierten Datenabgleich den Server connecten.

Aber nochmal: all dies hat mit den visuellen datensensitiven Komponenten nichts zu tun.

Grüsse
Woki
  Mit Zitat antworten Zitat
rbest

Registriert seit: 14. Nov 2003
Ort: Tannheim
71 Beiträge
 
Delphi 7 Professional
 
#9

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 24. Nov 2003, 06:14
Hi r_kerber und Kollegen,

ich verwende TADOConnection und TADODataSet, sowie TDataSource - weder TTable, noch TQuery. Und dann eben die TDB-Komponenten (zumindest bisher, solange ich nicht sicher bin, dass die meine ca. 150 User ausbremsen). Grüsse aus Memmingen.
  Mit Zitat antworten Zitat
Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#10

Re: Verursacht DBEdit viel Traffic im SQL Server?

  Alt 24. Nov 2003, 06:21
Zitat von woki:
Aber nochmal: all dies hat mit den visuellen datensensitiven Komponenten nichts zu tun.
Solange Du nicht im Transaktionsmodus "Repeatable read" oder "Serializable" arbeitest gebe ich Dir vollkommen Recht. Beim SQL Server sorgt dies beim lesenden Zugriff aber dafür das die Shared-Locks erst beim Ende der Transaktion freigegeben werden.

Daher mein Vorschlag mit dem ClientDataset: Erst Daten ins ClientDataset holen und dann mit den datensensitiven Steuerelementen arbeiten.

Gruß,
Marcel
Marcel Gascoyne
  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:19 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