AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [ACCESS] Defaultwert auf NULL setzen
Thema durchsuchen
Ansicht
Themen-Optionen

[ACCESS] Defaultwert auf NULL setzen

Ein Thema von Sanchez · begonnen am 23. Jan 2004 · letzter Beitrag vom 26. Jan 2004
Antwort Antwort
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#1

[ACCESS] Defaultwert auf NULL setzen

  Alt 23. Jan 2004, 11:43
Mahlzeit zusammen,

Ich hab eine Access-DB in der die Definition eines Feldes fehlerhaft ist. Der Defaultwert des int-Feldes ist 0 sollte aber NULL sein. Ich kanns nicht händisch machen weils auf mehreren Test-DBs und einer Demo-DB beim Kunden passieren muss.

Deshalb muss es mit nem Alter Table gehen. Allerdings zieht der Befehl

ALTER TABLE Antriebsrahmen ALTER ar_LokID int NULL offenbar nicht. Woran liegts?

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 25. Jan 2004, 17:25
Nochmal ne Info hinterher. Access liefert keinen SQL-Fehler nach diesem Befehl.
Es passiert einfach nix. Der Default-Wert des Feldes bleibt gleich.

Ist der Befehl grundsätzlich für den Kanal?
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 25. Jan 2004, 18:00
Wenn ich in Oracle bei einer Spalte die "NOT NULL" - Bedingung aufheben will, schreibe ich :
ALTER TABLE Antriebsrahmen modify AR_LOKID NULL; Hatte sie nie diese Bedingung, ist das auch nicht nötig
-> wird sie bei einem INSERT nicht beschrieben ist sie halt leer.

Die Frage dabei ist nur wie weit sich MS-Jet an solche SQL Standards hält.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 25. Jan 2004, 18:18
NOT NULL war die Spalte gar nie. Der Standardwert ist 0. Den hab ich unbeabsichtigt mal so gesetzt und habs erst viel später bemerkt. Jetzt soll ins Programm eine Updatefunktion rein, der den Standard-Wert auf NULL setzt.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 25. Jan 2004, 19:23
Dann vielleicht so:
ALTER TABLE Antriebsrahmen modify AR_LOKID DEFAULT NULL ... ohne "int"
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 25. Jan 2004, 19:46
Wenn dann so
ALTER TABLE Antriebsrahmen ALTER AR_LOKID DEFAULT NULL Modify gibts bei Access nämlich nicht. Werds morgen mal versuchen.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#7

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 26. Jan 2004, 06:50
Funktioniert leider weder mit Modify noch mit Alter. Beides liefert einen SQL-Fehler.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#8

Re: [ACCESS] Defaultwert auf NULL setzen

  Alt 26. Jan 2004, 09:26
Problem gelöst. Zwar ziemlich umständlich, aber damit kann ich leben, weil der Befehl nur einmal ausgeführt wird.

SQL-Code:
UPDATE Antriebsrahmen set ar_LokID1 = ar_LokID;
DROP INDEX ar_LokID on Antriebsrahmen;
ALTER TABLE Antriebsrahmen DROP COLUMN ar_LokID;
ALTER TABLE Antriebsrahmen ADD COLUMN ar_LokID int NULL;
UPDATE Antriebsrahmen set ar_LokID = ar_LokID1;
ALTER TABLE Antriebsrahmen DROP COLUMN ar_LokID1;
create index ar_LokID on Antriebsrahmen (ar_LokID);
UPDATE Antriebsrahmen set ar_LokID = NULL where ar_LokID = 0;
Weil ich das Umbenennen eines Feldes auch nicht hinbekommen habe, kopier ich das Feld einfach 2 mal.

Trotzdem Dank für die Ansätze

grüße, daniel
Daniel
Testen ist feige!
  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 04:23 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