![]() |
Datenbank: ABS • Version: 488 • Zugriff über: Datascore
den Feldtyp ändern?
Wie kann man bei einer Datenbank, im Nachhinein, den Feldtyp ändern?
|
Re: den Feldtyp ändern?
Zitat:
schaue mal in der Hilfe nach ![]() ![]() |
Re: den Feldtyp ändern?
Zitat:
Habe ich versucht, geht nicht, bzw. ist dann das Dbfile kaputt wenn ich mit Modify ändere. Auch ein Feldname hinzufügen, klappt auch nicht. |
Re: den Feldtyp ändern?
Moin smart!
Benutze AbsDB Manager. Menue: Table->Restructure Table. Viele Grüße Markus :gruebel: |
Re: den Feldtyp ändern?
Zitat:
|
Re: den Feldtyp ändern?
Vielen Dank an Euch Allen, hat hingehauen.
|
Re: den Feldtyp ändern?
Zitat:
|
Re: den Feldtyp ändern?
Zitat:
|
Re: den Feldtyp ändern?
Zitat:
Oder waren schon Daten in der Tabelle gespeichert? Ich weiss nicht wie die ABS reagiert wenn ich einen Feldtyp ändern möchte und dies aber zu einem Konflikt mit Daten in diesem Feld führt. |
Re: den Feldtyp ändern?
Zitat:
|
Re: den Feldtyp ändern?
Zitat:
Delphi-Quellcode:
ALTER TABLE Tabelle MODIFY (feld1 string Date);
|
Re: den Feldtyp ändern?
Hmm... bei mir ging es ohne Probleme.
|
Re: den Feldtyp ändern?
Zitat:
Delphi-Quellcode:
kam zwar keine Fehlermeldung, aber es hatte sich auch nichts geändert.
ALTER TABLE Tabelle MODIFY (Feld1 Date Memo);
|
Re: den Feldtyp ändern?
Zitat:
|
Re: den Feldtyp ändern?
:gruebel:
Den alten Feldtyp musst Du überhaupt nicht angeben.
SQL-Code:
Setzt den Typ von Feld1 auf Memo.
ALTER TABLE Tabelle MODIFY (Feld1 Memo);
|
Re: den Feldtyp ändern?
Zitat:
|
Re: den Feldtyp ändern?
Mal ein kleine Frage von jemanden, der keine Ahnung von ABS hat...
Was passiert, wenn du Daten in der Tabelle hast und plötzlich einen numerischen Wert (Date) in ein referenziertes Textfeld (was Memo wohl sein wird) änderst? Sind die Daten danach nicht komplett hinüber? :gruebel: |
Re: den Feldtyp ändern?
Zitat:
ich habe das mal schnell getestet:
SQL-Code:
Dann habe ich im Feld Datum gültige Daten eingefügt (2005-05-09 , 2005-09-09).
CREATE TABLE test (
id AUTOINC, datum DATE ); Jetzt habe ich :
SQL-Code:
gemacht. Die von mir eingefügten Daten standen dann im Memofeld. Auch das zurückwandelnd mit
ALTER TABLE test MODIFY (datum memo);
SQL-Code:
funktionierte.
ALTER TABLE test MODIFY (datum date);
Sobald ich aber etwas in dem Memo verändert habe (ein 'blubb' hinten drann geschrieben) kamm eine Fehlermeldung: Zitat:
|
Re: den Feldtyp ändern?
Zitat:
Das ist übrigens die gleiche Macke, die IB/FB auszeichet... Statements, die bestehende Daten verändern ohne, dass sofort der Tablespace aktualisiert wird kann ja auch nix werden. Aber eigentlich sollte eine DB sowas niemals zulassen, solange Daten in der Tabelle sind. ;) |
Re: den Feldtyp ändern?
Ups.
Nicht das Du mich falsch verstehst. Ich kann den Inhalt des Memos ändern! Aber wenn in dem Memo (oder auch string) kein Datum im gültigen Format steht kann ich das Feld nicht mehr in ein Date-Feld ändern. Ist ja auch logisch ;-) Aber ich kann z.B. einen Integer/Datum in einen String/Memo wandeln und diesen dann ganz normal weiter verwenden. |
Re: den Feldtyp ändern?
Zitat:
Hst du mal geprüft, ob sich die Datendatei passend zu deinen Änderungen vergrößert? Also ob die Mini engine diese Änderungen sofort durchführt? Wenn ja macht das ABS _wesentlich_ beser als zum Beispiel Firebird. FB lässt dich eine Spalte von varchar auf integer ändern, aber wehe man traut ich die alten (VarChar) Werte anzufassen. :shock: |
Re: den Feldtyp ändern?
Ich habe eben eine Datenbank mit einer Tabelle erzeugt. Diese hatte ein Feld vom Typ Integer und es waren 4 Datensätze vorhanden (1,2,3,4).
Dann habe ich den Feldtyp auf Memo geändert. Sofort nach dem ausführen des ALTER TABLE hat sich die größe der Datenbankdatei erhöht. Und ich kann auch alles in das Memoschreiben was ich möchte. Einen Feldtyp VarChar kennt die ABS-DB leider nicht wenn ich das richtig sehe. (Und Trigger und SPs schon garnicht ;-) ). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:22 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-2025 by Thomas Breitkreuz