Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi den Feldtyp ändern? (https://www.delphipraxis.net/53102-den-feldtyp-aendern.html)

smart 11. Sep 2005 16:07

Re: den Feldtyp ändern?
 
Zitat:

Zitat von Sharky
Gab es eine Fehlermeldung?
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.

Damit hatte ich es u.a. versucht:
Delphi-Quellcode:
ALTER TABLE Tabelle MODIFY (feld1 string Date);

Sharky 11. Sep 2005 16:07

Re: den Feldtyp ändern?
 
Hmm... bei mir ging es ohne Probleme.

smart 11. Sep 2005 16:18

Re: den Feldtyp ändern?
 
Zitat:

Zitat von Sharky
Hmm... bei mir ging es ohne Probleme.

Mit
Delphi-Quellcode:
ALTER TABLE Tabelle MODIFY (Feld1 Date Memo);
kam zwar keine Fehlermeldung, aber es hatte sich auch nichts geändert.

smart 11. Sep 2005 16:26

Re: den Feldtyp ändern?
 
Zitat:

Zitat von Sharky
Hmm... bei mir ging es ohne Probleme.

So eine Unsinn, jetzt habe ich den Fehler raus gefunden! Ich habe die ganze Zeit immer Alter_Feldtype mit Neuer_Feldtype vertauscht. Da fällt mir nichts mehr ein!!

Sharky 11. Sep 2005 16:32

Re: den Feldtyp ändern?
 
:gruebel:
Den alten Feldtyp musst Du überhaupt nicht angeben.
SQL-Code:
ALTER TABLE Tabelle MODIFY (Feld1 Memo);
Setzt den Typ von Feld1 auf Memo.

smart 11. Sep 2005 17:30

Re: den Feldtyp ändern?
 
Zitat:

Zitat von Sharky
:gruebel:
Den alten Feldtyp musst Du überhaupt nicht angeben.

Haste Recht, geht auch ohne! Danke!;-)

Robert_G 11. Sep 2005 17:39

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:

Sharky 11. Sep 2005 17:47

Re: den Feldtyp ändern?
 
Zitat:

Zitat von Robert_G
... Sind die Daten danach nicht komplett hinüber? :gruebel:

Hai Robert,

ich habe das mal schnell getestet:
SQL-Code:
CREATE TABLE test (
  id AUTOINC,
  datum DATE
);
Dann habe ich im Feld Datum gültige Daten eingefügt (2005-05-09 , 2005-09-09).
Jetzt habe ich :
SQL-Code:
ALTER TABLE test MODIFY (datum memo);
gemacht. Die von mir eingefügten Daten standen dann im Memofeld. Auch das zurückwandelnd mit
SQL-Code:
ALTER TABLE test MODIFY (datum date);
funktionierte.
Sobald ich aber etwas in dem Memo verändert habe (ein 'blubb' hinten drann geschrieben) kamm eine Fehlermeldung:
Zitat:

Error altering table: 'Invalid value for field 'datum'' - Native error: 30265

Robert_G 11. Sep 2005 18:20

Re: den Feldtyp ändern?
 
Zitat:

Zitat von Sharky
Sobald ich aber etwas in dem Memo verändert habe (ein 'blubb' hinten drann geschrieben) kamm eine Fehlermeldung:
Zitat:

Error altering table: 'Invalid value for field 'datum'' - Native error: 30265

Das habe ich mir schon die ganze Zeit bei heikes Antworten gedacht. ;)
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. ;)

Sharky 11. Sep 2005 18:24

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:06 Uhr.
Seite 2 von 3     12 3      

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