AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit Defaultwert bei MySQL und ZEOS
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Defaultwert bei MySQL und ZEOS

Ein Thema von Angel4585 · begonnen am 2. Mai 2006 · letzter Beitrag vom 19. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Problem mit Defaultwert bei MySQL und ZEOS

  Alt 2. Mai 2006, 12:31
Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS
Hallo zusammen,

wie schon im Titel steht, habe ich ein Problem mit den Defaultwerten bei der Kombination MySQL und ZEOS.

Ich habe eine Tabelle mit einem Feld:
SQL-Code:
CREATE TABLE IF NOT EXISTS "Tabellenname"(
Feldname BOOLEAN DEFAULT "0" NOT NULL
);
Das Problem ist jetzt nur, das wenn ich mit einer Zeos-Querie ein Append mache, also einen neuen datensatz anlege, dieser Defaultwert nicht gesetzt wird. Beim Post mit dem ich den Datensatz speichern möchte, kommt nur eine Fehlermeldung, dass das Feld nicht NULL sein darf, was ja stimmt. Aber sollte in diesem Fall nicht der Defaultwert reingeschrieben werden?

MfG
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 2. Mai 2006, 12:34
Hallo Martin,

entweder DEFAULT oder NOT NULL - beides zusammen macht doch keinen Sinn.

Grüße vom marabu
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 2. Mai 2006, 12:38
Türlich macht das Sinn..
DEFAULT ist der Wert der standardmäßig bein anlegen reingeschrieben werden soll.
NOT NULL wird benötigt wenn ein Benutzer den Datensatz später bearbeitet und NULL also NICHTS reinschreiben will.

Edit:*Große Klape wieder zumach* hattest Recht, NOT NULL weg und es geht
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Rexet

Registriert seit: 24. Feb 2005
15 Beiträge
 
#4

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 11:16
Errr... Das kann ja nicht die Lösung sein... Der letzte Einwand is ja berechtigt... Default-Werte können ja überschrieben werden und ich will ned von der Software aus dauernd leere Felder abfragen müssen o_0 Darum soll sich die Datenbank kümmern oder mir zumindest beim posten ne exception liefern damit ich das schön behandeln kann.

Ich hab übrigens den genau gleichen Fehler wie der erste Poster. Allerdings bin ich auch auf die neueren ZEOS-Komponenten umgestiegen. Die ZEOS-DBOs aus dem Jahre 2003 oder so hatten dieses Problem noch nicht (dafür halt hundert andere... ~_~) Wir hatten unsere Anwendung mit denen geschrieben, und der gleichzeitige Einsatz beider Flag war damals noch zugelassen. Also vermutlich wieder mal ein BUG in deren Komponenten... Mußte ja eh schon die verbliebenen "requestlive"-Aufrufe aus denen raushauen...

Greetings, D.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 11:23
SQL-Code:
CREATE TABLE IF NOT EXISTS "Tabellenname"(
Feldname BOOLEAN DEFAULT "0" NOT NULL
);
Also das ist ja fast alles Falsch so ist das richtig
SQL-Code:
CREATE TABLE IF NOT EXISTS "Tabellenname"(
Feldname TINYINT(1) NOT NULL DEFAULT 0
);
Weil Boolean kennt MySQL garnicht und NOT NULL muss vor Default
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Rexet

Registriert seit: 24. Feb 2005
15 Beiträge
 
#6

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 11:30
Wer das Problem lösen kann ohne viel Quelltext aufzuwirbeln dem bin ich zu höchstem Dank (ich mach das fürn nen Job o_0) verpflichtet.

Und aja: AutoInc-Felder scheinen die ZEOS DBOs neuerdings auch zu ignorieren!

Und aja2: Wenn man das ganze in einer Datenbank-Oberfläche wie z.b in MySQL-Front macht(also einen Datensatz einfügt), so funktionieren auch beide Flags miteinander, sprich: Die Default-Werte werden beim Einfügen des Datensatzes angelegt... Es liegt also nur an den Komponenten.
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 11:37
Und falls Du unbedingt ein Boolsches Feld brauchst.

SQL-Code:
CREATE TABLE IF NOT EXISTS "Tabellenname"(
`Feldname` enum('Wahr','Falsch') default 'Falsch'
);
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 11:44
An alle die auf ZEOS schimpfen:

1, Die Komponenten sind Kostenlos und jeder darf gerne mitmachen diese zu verbessern. Auch sollte man Fehler/Probleme auf der ZEOS-Seite melden und nicht in irgendeinem Forum sich auslassen.

2, Niemand verplichtet einen diese zu verwenden. Es gibt genügend kostenpflichtige Komponenten die MySQL-Zugriff mit Delphi ermöglich. Ich selbst verwende die CrLab-Komponenten sehr erfolgreich

3, Es muß nicht immer eine ZEOS-Fehler sein. Ich hatte auch schon MySQL-Versionen die im Bereich Default-Wert murks gebaut hat. Also am besten immer mit einer 2ten-MySQL-Version gegenchecken.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Rexet

Registriert seit: 24. Feb 2005
15 Beiträge
 
#9

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 12:24
Zitat von Bernhard Geyer:
An alle die auf ZEOS schimpfen:

1, Die Komponenten sind Kostenlos und jeder darf gerne mitmachen diese zu verbessern. Auch sollte man Fehler/Probleme auf der ZEOS-Seite melden und nicht in irgendeinem Forum sich auslassen.

2, Niemand verplichtet einen diese zu verwenden. Es gibt genügend kostenpflichtige Komponenten die MySQL-Zugriff mit Delphi ermöglich. Ich selbst verwende die CrLab-Komponenten sehr erfolgreich

3, Es muß nicht immer eine ZEOS-Fehler sein. Ich hatte auch schon MySQL-Versionen die im Bereich Default-Wert murks gebaut hat. Also am besten immer mit einer 2ten-MySQL-Version gegenchecken.
Ich schätz mal die können aber auch nimmer die Nörgelei hören Besser hier als dort, wo sie eh das vermutlich 100x am Tag hören.

So ganz nebenbei hab ich aber eine Kombination entdeckt mit der sowohl "NOT NULL" als auch ein DEFAULT-WERT akzeptiert werden. Ich benutze dazu:

MySQL 5.0.22 (Müßte auch mit 4er-Versionenen gehen)
DBO zeosdbo-6.5.1-alpha (2004-11-14 10:15) (Vielleicht geht auch was zwischem Aktuellen u. dem 2004er-Update, allerdings hab ich keine Geduld das jetzt noch auszuprobieren.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Problem mit Defaultwert bei MySQL und ZEOS

  Alt 19. Jul 2006, 12:37
Zitat von franktron:
SQL-Code:
CREATE TABLE IF NOT EXISTS "Tabellenname"(
Feldname BOOLEAN DEFAULT "0" NOT NULL
);
Also das ist ja fast alles Falsch so ist das richtig
SQL-Code:
CREATE TABLE IF NOT EXISTS "Tabellenname"(
Feldname TINYINT(1) NOT NULL DEFAULT 0
);
Weil Boolean kennt MySQL garnicht und NOT NULL muss vor Default
Ich hab das mittlerweile auch so gelöst, dass ich 0 bzw 1 für False bw. True in ein Feld schreibe.
Da mit NOT NULL und DEFAULT hatte ich nicht hinbekommen, aber so wie du das da oben gemacht hast funktioniert es, also das NOT NULL vor dem DEFAULT anstatt dahinter.

THX

MfG
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:54 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