Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankfelder aus Variablen (https://www.delphipraxis.net/11742-datenbankfelder-aus-variablen.html)

Matt 13. Nov 2003 08:06


Datenbankfelder aus Variablen
 
Guten Morgen,

ich habe das so eine verrückte Idee und bin natürlich bei der Umsetzung vorläufig wieder voll gescheitert! Und zwar...

Ich habe aus einer Tabelle alle Feldnamen ausgelesen und die in selbsterstellte TEdits gepackt (Tedit.name = Feldname DB). Ein weiteres Tedit für jedes Feld aus der DB wurde ebenfalls erstellt und dient der Texteingabe. Nun möchte ich dem Feld aus der DB welches im ersten TEdit steht den Wert aus TEdit2 zuweisen, also in die DB eintragen!

Nach dem Motto:
Table1.(Text aus Edit1).asstring := Edit2.text

Nur macht Delphi das natürlich so nicht, weil er aus einem Str kein TField machen kann, zumindest weiß ich nicht wie!

Das zweite ist, das es das erste Edit Feld natürlich so oft gibt wie Felder in der DB vorhanden sind, also heißen die Felder alle unterschiedlich!

Kurz gesagt gibt es eine Möglichkeit aus Strings und Variablen einen kompletten Satz zu erstellen, den Delphi als TFiled erkennt?

Bin für Anregungen sehr dankbar!

Gruß Matt

Smokey 13. Nov 2003 10:46

Re: Datenbankfelder aus Variablen
 
Mit was für einer Komponente hast du denn die Tabelle bzw ihre felder ausgelesen ?

du hast im prinzip 2 möglichkeiten :

entweder du benutzt editfelder die direkt an die datenbank gebunden sind (über eine datasource).

Oder du machst aus deinen ganzen Feldern einen SQL-Query den du absetzt :

Delphi-Quellcode:
sSql := 'Insert into Tabelle1 (' + editFeld1.text + ',' + editFeld2.text + 
   ....')Values(' + EditWert1.text +',' + .....)
usw.
edit1.feld steht dabei für die textfelder mit den Feldnamen aus der DB
wobei du dafür auch labels benutzen kannst weil die werte ja nicht verändert werden.

wenn es änderungen an einem bestehenden datensatz sein sollen, musst du halt nen Update befehl statt dem Insert nehmen.

Hoffe hab dich richtig verstanden :wink:

mfg

Bernd Ua 13. Nov 2003 10:50

Re: Datenbankfelder aus Variablen
 
Hi Matt,

Zitat:

Table1.(Text aus Edit1).asstring := Edit2.text
geht so ( ggf ein paar Prüfungen einbauen )

Delphi-Quellcode:
procedure TForm1.WriteBack(sEditName : String);
begin
  Table1.FieldByName(sEditname).AsString := (FindComponent(SEditname) As TEdit).Text;
end;
Trotzdem stellt sich natürlich die Frage, warum du nicht zur Laufzeit TDBEdit erzeugst
statt TEdit

Bernd

Matt 13. Nov 2003 15:32

Re: Datenbankfelder aus Variablen
 
Hallo Ihr beiden,
das hört sich beides auf den ersten Blick verdammt gut an! Werde mal beide Wege ausprobieren und schauen, was besser funktioniert für mein Vorhaben!

Vielen Dank erstmal!

Gruß Matt


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 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 by Thomas Breitkreuz