Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.delphi.misc > #19090 > unrolled thread

Erste Schritte mit SQL, Refresh-Problem DBGrid

Started byChristian Schmitt <chrischmi0815@googlemail.com>
First post2020-09-13 05:31 -0700
Last post2020-10-07 00:53 -0700
Articles 5 — 4 participants

Back to article view | Back to de.comp.lang.delphi.misc


Contents

  Erste Schritte mit SQL, Refresh-Problem DBGrid Christian Schmitt <chrischmi0815@googlemail.com> - 2020-09-13 05:31 -0700
    Re: Erste Schritte mit SQL, Refresh-Problem DBGrid Alfred Gemsa <gemsa@gmx.de> - 2020-09-14 07:40 +0200
      Re: Erste Schritte mit SQL, Refresh-Problem DBGrid Christian Schmitt <chrischmi0815@googlemail.com> - 2020-09-15 09:54 -0700
    Re: Erste Schritte mit SQL, Refresh-Problem DBGrid "Martin Schade" <m.schade@mvnet.de> - 2020-10-05 18:19 +0200
      Re: Erste Schritte mit SQL, Refresh-Problem DBGrid Christian Kirsch <administrator@stjakobushospiz.de> - 2020-10-07 00:53 -0700

#19090 — Erste Schritte mit SQL, Refresh-Problem DBGrid

FromChristian Schmitt <chrischmi0815@googlemail.com>
Date2020-09-13 05:31 -0700
SubjectErste Schritte mit SQL, Refresh-Problem DBGrid
Message-ID<fee48cb5-c30e-48a0-8fa7-5c2395c15d9fn@googlegroups.com>
Hallo Leute,

ich versuche mich gerade mal mit SQL. Habe mich über einen ClientDataSet mit einer Tabelle einer MySQL Datenbank (MariaDB) verbunden. Funktioniert alles soweit auch ganz gut. Jedoch: Wenn ich die Tabelle aktualisieren möchte muß ich die ClientDataSet.Refresh Methode immer zweimal aufrufen, damit die Tabelle auch aktuell ist. Wenn ich beispielsweise einen Datensatz hinzugefügt habe, dann verschwindet dieser beim ersten Refresh wieder um beim zweiten Refresh wieder zu erscheinen. Wenn ich direkt mit PHPMyAdmin einen Eintrag mache, dann muß auch hier 2x refreshed werden, damit der erscheint. Habt Ihr da eine Idee? 

Gruß

[toc] | [next] | [standalone]


#19091

FromAlfred Gemsa <gemsa@gmx.de>
Date2020-09-14 07:40 +0200
Message-ID<hs8e37FrnorU1@mid.individual.net>
In reply to#19090
Am 13.09.2020 um 14:31 schrieb Christian Schmitt:

> ich versuche mich gerade mal mit SQL. Habe mich über einen ClientDataSet mit einer Tabelle einer MySQL Datenbank (MariaDB) verbunden. Funktioniert alles soweit auch ganz gut. Jedoch: Wenn ich die Tabelle aktualisieren möchte muß ich die ClientDataSet.Refresh Methode immer zweimal aufrufen, damit die Tabelle auch aktuell ist. Wenn ich beispielsweise einen Datensatz hinzugefügt habe, dann verschwindet dieser beim ersten Refresh wieder um beim zweiten Refresh wieder zu erscheinen. Wenn ich direkt mit PHPMyAdmin einen Eintrag mache, dann muß auch hier 2x refreshed werden, damit der erscheint. Habt Ihr da eine Idee?

Ich habe seinerzeit viel mit DB-Komponenten gemacht und könnte dir 
eventuell helfen, wenn du zeigst, welche Komponenten du benutzt 
(Database, Transaction, Dataset, ev. SQL und auch Trigger), die dann das 
DBGrid füttern.

Aus dem Kopf weiß ich das nicht mehr.

Alfred

[toc] | [prev] | [next] | [standalone]


#19092

FromChristian Schmitt <chrischmi0815@googlemail.com>
Date2020-09-15 09:54 -0700
Message-ID<7176a584-c30e-4c18-9116-75320d51e705n@googlegroups.com>
In reply to#19091
Alfred Gemsa schrieb am Montag, 14. September 2020 um 07:40:58 UTC+2:

> Ich habe seinerzeit viel mit DB-Komponenten gemacht und könnte dir 
> eventuell helfen...

Sehr gut, klingt vielversprechend :-)

> ...wenn du zeigst, welche Komponenten du benutzt 
> (Database, Transaction, Dataset, ev. SQL und auch Trigger), die dann das 
> DBGrid füttern. 

Natürlich gerne: Also ich habe auf meinem Synology eine Maria-DB Datenbank angelegt. Mein Delphi-Programm habe ich mit einer TSQLConnection ausgestattet (Driver = MySQL, GetDriverFunc = getSQLDriverMYSQL, LibraryName = dbxmys.dll, LoadParamsOnConnection = false VendorLib LIBMYSQL.dll). Mit dem SQLConnection habe ich dann ein TSQLDataSet verbunden (CommandType = ctTable), worauf wiederum ein TDatasetProvider zugreift. Dann kommt ein TClientDataSet, der mit dem Provider verbunden ist und eine TDataSource speist. Und darauf schlussendlich greift das DB Grid zu. Den ClientDataSet muss ich 2x refreshen, wie schon geschrieben.

Gruß

PS: Bitte nicht schlagen wenn das irgendwie total von hinten durch die Brust geschossen ist, das habe ich mir so in der Reihenfolge zusammengegoogelt und funktioniert eigentlich bis jetzt ganz gut. Heißt nicht dass ich nicht von einem alten Hasen Lehre annehmen will... :-)

[toc] | [prev] | [next] | [standalone]


#19093

From"Martin Schade" <m.schade@mvnet.de>
Date2020-10-05 18:19 +0200
Message-ID<rlfh2r$780$1@tota-refugium.de>
In reply to#19090
Hallo Christian, Du könntest mal schreiben welche Delphi-Version Du benutzt.

Grüße, Martin Schade

[toc] | [prev] | [next] | [standalone]


#19094

FromChristian Kirsch <administrator@stjakobushospiz.de>
Date2020-10-07 00:53 -0700
Message-ID<8efaff81-2541-4bda-8ab6-3ad70e8fefc2n@googlegroups.com>
In reply to#19093
Martin Schade schrieb am Montag, 5. Oktober 2020 um 18:19:40 UTC+2:
> Hallo Christian, Du könntest mal schreiben welche Delphi-Version Du benutzt. 

Delphi XE2 Update 4, Hotfix 1. Ich habs jetzt momentan so gelöst, dass ich im BeforRefresh Ereignis des ClientDataSets sein SQLDataset.Refresh aufrufe. Damit reicht jetzt ein einziger Refresh aus, weiß aber nicht ob das so ok ist bzw. die Performance später bei vielen Datensätzen evtll darunter leidet?!

Gruß

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.delphi.misc


csiph-web