AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi IntegerFeld und Checkbox Wert

IntegerFeld und Checkbox Wert

Ein Thema von haentschman · begonnen am 22. Jul 2008 · letzter Beitrag vom 22. Jul 2008
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.577 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 08:59
Datenbank: firebird • Version: 2.0 • Zugriff über: Zeos
Guten Morgen alle...

ich habe das Problem zwar im Griff, wüßte aber gern, warum das so ist.

- da ja Firebird Datenbanken keine Boolean Felder haben speichere ich die Werte als 0 bzw.1

soweit so gut...

wenn ich den CheckBox Wert in einer Query als Parameter übergebe
ZQueryDiv.ParamByName('Wartung').Value:= Pauschal.Checked; ...kommt in der Datenbank 0 oder 1 an. Beim Lesen wird wiederum 0 als False bzw. 1 als True interpretiert.

aber...

wenn ich den Wert in der Query direkt verändere und dann über ApplyUpdates die Query schreiben lasse
ZQueryIP.FieldValues['CB1']:= FIPWerte.CB1.Checked; ...kommt in der Datenbank 0 und -1 an wobei beim Lesen die 0 als False und die -1 als True interpretiert wird.


- wenn ich nicht in der Tabelle der Datenbank nachgesehen hätte, wäre es mir gar nicht aufgefallen.

hat jemand eine Idee, warum das so ist ?

PS: ich habe das im Moment so gelöst, daß ich den Status der CheckBox auswerte und explizit 0 oder 1 schreibe.

Danke...
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#2

Re: IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 09:19
Hi, wenn ich einen CheckBox Wert speicher dann nehme ich BoolToStr.
Hat es evtl. damit etwas zu tun ?
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 09:31
Firebird hat zwar kein Boolean, Du kannst Dir aber eine neue Domain (=Datentyp) erstellen und diese verwenden.
z.B.
Code:
CREATE DOMAIN D_BOOLEAN AS
  SMALLINT
  DEFAULT 0;
Kannst Du nicht das .Checked zu einem Integer umwandeln und dann speichern?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.577 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 09:34
Danke für deine Antwort...

- das hat nicht wirklich damit zu tun. Boolean sollte man als Integer speichern (gibt es eine Menge Threads dazu)
- Integer 0 = False, Integer 1 = True
- String "False" und "True" ist eigentlich gar nichts

PS: ich hatte das früher auch mit String aber mit Integer ist wesentlich komfortabler und übersichtlicher

@RavenIV
Zitat:
Kannst Du nicht das .Checked zu einem Integer umwandeln und dann speichern?
...
Zitat:
PS: ich habe das im Moment so gelöst, daß ich den Status der CheckBox auswerte und explizit 0 oder 1 schreibe.
Zitat:
Du kannst Dir aber eine neue Domain (=Datentyp) erstellen und diese verwenden.
... auch ne Variante, welche sich auszuprobieren lohnt.

Danke an alle...
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 09:40
Zitat von haentschman:
@RavenIV
Zitat:
Kannst Du nicht das .Checked zu einem Integer umwandeln und dann speichern?
...
Zitat:
PS: ich habe das im Moment so gelöst, daß ich den Status der CheckBox auswerte und explizit 0 oder 1 schreibe.
Machst Du es auch so?:
ZQueryIP.FieldValues['CB1']:= Integer(FIPWerte.CB1.Checked);
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.577 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 09:45
Zitat:
Machst Du es auch so?:
...nicht wirklich. Ich bevorzuge die umständliche Variante

if FIPWerte.CB1.Checked then ZQueryIP.FieldValues['CB1']:= 1; ZQueryIP.FieldValues['CB1']:= Integer(FIPWerte.CB1.Checked); ... let´s have a Test

bis bald...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.577 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: IntegerFeld und Checkbox Wert

  Alt 22. Jul 2008, 09:53
Zitat:
ZQueryIP.FieldValues['CB1']:= Integer(FIPWerte.CB1.Checked);
...und es bewegt sich doch ... wie es soll
...das Leben kann so einfach sein !

Danke...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf