AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Änderung in einer Tabelle von 2 auf 4 Felder
Thema durchsuchen
Ansicht
Themen-Optionen

Änderung in einer Tabelle von 2 auf 4 Felder

Ein Thema von RWarnecke · begonnen am 8. Sep 2012 · letzter Beitrag vom 8. Sep 2012
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Änderung in einer Tabelle von 2 auf 4 Felder

  Alt 8. Sep 2012, 08:55
Datenbank: MySQL • Version: 5.5 • Zugriff über: MyDAC
Hallo zusammen,

ich habe folgendes Problem. Ich habe eine Tabelle die zwei Felder enthält. Im ersten Feld wird ein Boolean-Wert abgespeichert. Im zweiten Feld ein Integer-Wert zwischen 1 und 4. Der Integer-Wert ist der Indexwert einer Combobox. Jetzt ist die Anforderung das erste Feld zu behalten und die vier Werte, die aus der Combobox auszuwählen waren in Booleanfelder zu speichern.

Jetzt ist meine Frage, wie würdet Ihr die alten Werte auf die vier neuen Booleanfelder verteilen ? Es werden DB-Komponenten verwendet.

Meine Überlegungen sind folgende :
  • Eine Stored Procedure schreiben, welche alle vorhandenen Datensätze durchgeht und dann entsprechend die vier neuen Felder füllt.
  • Die Werte für die vier neuen Felder manuell setzen, wenn ein Datensatz mit einem entsprechenden Integer-Wert aufgerufen wird.

Bei der zweiten Überlegung, habe ich noch nicht so den richtigen Plan, wie ich in einer DBRadioGroup entsprechend den Wert manuell setze.

Ich hoffe Ihr könnt mir weiterhelfen, wenn euch noch Infos fehlen, dann bitte einfach nachfragen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.173 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Änderung in einer Tabelle von 2 auf 4 Felder

  Alt 8. Sep 2012, 09:20
1, Für die DB-Änderung schickst du ein alter-table-statement zur DB

2, Um die Datan in die neuen Felder zu bekommen schickst du ein Update-Statement los:

update <meinetabelle> set neuesfeld1 = true where altesfeld = 0;
update <meinetabelle> set neuesfeld2 = true where altesfeld = 1;
...

3, Lösche Altes Feld wenn du sicher bist es nicht mehr zu gebrauchen. Kannst hierzu ein ein alter table-Statement verwenden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Änderung in einer Tabelle von 2 auf 4 Felder

  Alt 8. Sep 2012, 10:18
Warum nutzt Du DB-Komponenten?
Wickel den Datenverkehr über Queries ab, dann hast Du alles im Griff, auch die Umsetzung von boolschen Feldern auf Indices.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

AW: Änderung in einer Tabelle von 2 auf 4 Felder

  Alt 8. Sep 2012, 10:29
Warum nutzt Du DB-Komponenten?
Wickel den Datenverkehr über Queries ab, dann hast Du alles im Griff, auch die Umsetzung von boolschen Feldern auf Indices.

Gruß
K-H
Im normalfall mache ich das auch in meinen Programmen. Ich habe den Quelltext übernommen, das ganze Programm besteht nur aus DB-Komponenten. Daraus eine einfache Anwendung mit normalen Komponenten zu machen, kommt im Moment für mich einem ReWrite des Programms gleich.

1, Für die DB-Änderung schickst du ein alter-table-statement zur DB

2, Um die Datan in die neuen Felder zu bekommen schickst du ein Update-Statement los:

update <meinetabelle> set neuesfeld1 = true where altesfeld = 0;
update <meinetabelle> set neuesfeld2 = true where altesfeld = 1;
...

3, Lösche Altes Feld wenn du sicher bist es nicht mehr zu gebrauchen. Kannst hierzu ein ein alter table-Statement verwenden
Die Idee von Dir Bernhard ist super. Habe ich schon ausprobiert und funktioniert einwandfrei. Danke Dir.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Änderung in einer Tabelle von 2 auf 4 Felder

  Alt 8. Sep 2012, 14:33
Irgendwie verstehe ich die Anforderung und deine Umsetzung nicht.

Da ist von ComboBox und RadioGroup die Rede und du möchtest statt einem Wert (integer) jetzt mehrere Werte haben (Boolean).

Allerdings können beide nur einen Wert annehmen. Von daher ist es kontraproduktiv in der DB mehrere Felder dafür zu verwenden.

Ausnahme: Du möchtest jetzt CheckBoxen einsetzen, dann würde ich das auch noch verstehen.

Wenn du (aus welchen Gründen auch immer) jetzt aber trotzdem eine Boolean-Sicht des Wertes wünscht, dann würde ich eine View empfehlen statt die Tabelle zu ändern.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: Änderung in einer Tabelle von 2 auf 4 Felder

  Alt 8. Sep 2012, 15:04
Da ist von ComboBox und RadioGroup die Rede und du möchtest statt einem Wert (integer) jetzt mehrere Werte haben (Boolean).
Die Combobox verschwindet und für die vier Einträge der Combobox wird jetzt jeweils eine RadioGroup mit ja und nein benutzt.
Rolf Warnecke
App4Mission
  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 19:09 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