Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Ändern eines Feldes in der DB


mcst09 - Di 20.06.06 08:40
Titel: Ändern eines Feldes in der DB
Hallo,

ich habe eine Sybase-DB und möchte folgendes tun:
In der DB gibt es ein Feld "Nummer". Die Nummer schaut zum Beispiel so aus: D-5,00 oder auch D-45,12

Nun möchte ich auf einfachen Wege alle Nummern-Felder aus der DB lesen und von dem String "D-" trennen, so dass zum Beispiel nur 5,00 oder aber 45,12 übrig bleibt. Dies soll wieder in die DB zurückgeschrieben werden.

Wie mache ich das am Besten? Geht das über einen SQL-Befehl? Oder muss ich erst mit einem SELECT aller Nummern auslesen, die in Delphi dann irgendwie manipulieren und die dann mit einem UPDATE zurückschreiben??

AXL


mkinzler - Di 20.06.06 08:42

Grundsätzlich Ja mit dem SQL-Befehl UPDATE. Wie die Syntax aber genau aussieht, hängt vom engesetzten Datenbank-System ab.


jasocul - Di 20.06.06 08:45

Ich kenne Sybase leider nur vom Namen, aber auch dort wird Funktionen geben, um Strings zu manipulieren (SubStr, SubString o.ä.). Da musst du einfach mal in der Doku nachsehen. Das ganze sollte dann mit einem einzelnen Update-Statement funktionieren.
//EDIT: Für Sybase guggst du hier [http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0901/de/html/dbrfde9/00000288.htm]


mkinzler - Di 20.06.06 08:53

Wenn die Werte dann alle mit 'D-' beginnen würde der Befehl


SQL-Anweisung
1:
Update tabelle set Feld = SUBSTR( FELD, 3where SUBSTR(FELD, 12) = 'D-';                    


Du könntest die aber auch den REPLACE-Befehl näher anschauen.