Auf meinem Formular habe ich eine Reihe von TMyQuery-Komponenten. Ihre Namen geben an, mit welchen MySQL-Tabellen sie arbeiten. Zum Beispiel arbeitet COMPONENTSTABLE mit der COMPONENTS TABLE usw.Speichern des Komponentennamens als Zeichenfolge für die spätere Verwendung
Es gibt etwa 30 Tabellen, aber das könnte sich in der Zukunft ändern.
Ich verwende auch eine grundlegende String-Liste, um Feldnamen aus einer Tabelle namens TIMESTAMPS zu lesen. Diese Tabelle wird über Trigger aktualisiert, wenn ein UPDATE, INSERT oder DELETE auftritt. Jedes Feld innerhalb der TIMESTAMPS-Tabelle bezieht sich auf die Tabelle, die geändert wurde. Es gibt nur einen Datensatz in der Tabelle! Anhand der Feldwerte kann ich sehen, welche Tabelle sich geändert hat, damit ich sie aktualisieren kann, anstatt sie alle zu aktualisieren.
Ich möchte dies nicht tun;
If fieldbyname['COMPONENTSTABLE'] <> CurrentTimeStamp
then ComponentsTable.Refresh;
If fieldbyname['ORDERSTABLE'] <> CurrentTimeStamp
then OrdersTable.Refresh;
{ and so on forever }
Was ich will, ist zu tun;
Momentan habe ich eine String-Liste mit "Names/Values". Jeder "Name" ist der Feldname innerhalb der Tabelle und "Value" ist der von MySQL Triggers bereitgestellte TIMESTAMP.
Ich habe folgendes;
Ich habe die String List funktioniert, die Namen, die Werte usw. sind alle korrekt.
Meine Frage ist das;
Gibt es eine Möglichkeit ich einen String verwenden kann („Namen“ Spalte in der Liste) zu einem Objekt zu verweisen, wenn das Objekt vorhanden ist?
Ich habe bereits eine Funktion, die ich benutze, um einzelne Tabellen zu aktualisieren, indem Sie ein Objekt daran übergeben, aber das ist ein Objekt und einfach zu arbeiten. Ich würde gerne das "Objekt" übergeben, basierend auf seinem Namen, der aus einem String abgerufen wurde.
Ich hoffe, das macht Sinn und Sie können verfolgen, was ich will.
Dank @Pepak, bitte beachten Sie die Antwort, die ich unten, danke an Sie geschrieben habe. :) –