[brauche Hilfe] ADO MDB SQL Abfrage Rueckgabe eines Boolean Wertes Sprachunterschiede "Wahr und true"
-
Ich hab eine Access Datenbank in der ein Feld als Ja/Nein definiert ist, wenn ich diese abfrage, bekomme ich den String "Wahr" zurück. Wenn ich diesen String nun in einer if - Anweisung auf Wahr setze bekomme ich bei einem englisch sprachigen Client Probleme da bei der Abfrage die Rückgabe des Wertes "true" wäre und dieser nicht mehr der if - Anweisung entspricht.
int a = IntToBool(Query->FieldByName("status")->AsBoolean);
Ist natürlich so falsch und funktioniert nicht, hat jemand ein Tip wie ich das schreiben muss?
Ich kann das Feld leider nicht mit Integer ansprechen....
-
Hallo
Ein ordentliches Bool-Feld arbeitet mit den Werten 1 und 0 oder mit Konstanten True und False. Wenn das von dem Access-Bool-Feld nicht gemacht wird, dann solltest du entweder auf einen Integer-Typ ausweichen (mit 0 und 1), oder besser gleich Access gegen ein vernünftiges modernes DBMS austauschen.
Edit : Den Sinn deiner Zeile verstehe ich aber auch nicht ganz. Warum nicht einfach
bool a = Query->FieldByName("status")->AsBoolean;
bis bald
akari
-
wenn ich den bool in int wandele koennte ich if (a!=1) schreiben und die bejaung der negation erfragen quasi
wenn du dein account nicht existiert dann erstelle einen
da ja if immer gleich angibt muss wahr sein um zu funktionieren und alles andere am else bleibt
habs aber anders geloest durch die direkte abfrage in der if anweisung, ich wollte mir das else sparen aber so gehts auch
dank dir trotzdem fuer den tip werds mal notieren
-
Hallo
lionellvp schrieb:
wenn ich den bool in int wandele koennte ich if (a!=1) schreiben und die bejaung der negation erfragen quasi
Und warum must du dazu den bool in ein int umwandeln?
bool a = ...; if (a != true) { } // oder noch kürzer if (!a) { }
da ja if immer gleich angibt muss wahr sein um zu funktionieren und alles andere am else bleibt
habs aber anders geloest durch die direkte abfrage in der if anweisung, ich wollte mir das else sparen aber so gehts auch
Für den Fall das ich dich nicht komplett falsch verstanden habe :
Dir ist schon klar, das man jede beliebige Bedingung, die man in einem if verwenden kann, auch negieren kann?if (a != b) { // Tue A } else { // Tue B } // Die Bedingung negieren, dann drehen sich die beiden Fälle um if (a == b) { // Tue B } else { // Tue A }
bis bald
akari
-
wusste nicht das es auch fuer datenzugriffe moeglich ist
if (!Query->FieldByName("active")->AsBoolean)
sollte dann die negation der abfrage erzeugen gut zu wissen thx