AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankfelder aus Variablen
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankfelder aus Variablen

Ein Thema von Matt · begonnen am 13. Nov 2003 · letzter Beitrag vom 13. Nov 2003
Antwort Antwort
Matt

Registriert seit: 13. Nov 2003
Ort: Hamburg
212 Beiträge
 
#1

Datenbankfelder aus Variablen

  Alt 13. Nov 2003, 08:06
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
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Datenbankfelder aus Variablen

  Alt 13. Nov 2003, 10:46
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

mfg
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Bernd Ua

Registriert seit: 10. Nov 2003
Ort: Lindhorst
87 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Datenbankfelder aus Variablen

  Alt 13. Nov 2003, 10:50
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
Bernd Ua
  Mit Zitat antworten Zitat
Matt

Registriert seit: 13. Nov 2003
Ort: Hamburg
212 Beiträge
 
#4

Re: Datenbankfelder aus Variablen

  Alt 13. Nov 2003, 15:32
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
  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 02:57 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