<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wie können boolsche Daten aus MySQL im BCB bearbeitet werden?]]></title><description><![CDATA[<p>Hallo,<br />
in meiner MySQL DB habe ich eine Spalte mit boolschen Daten, die ich im BCB6 beackern möchte.<br />
Die boolschen Einträge werden in MySQL im sogenannten &quot;tinyint&quot; Format gespeichert, was im BCB6 scheinbar dem Typ &quot;ftSmallint&quot; entspricht.</p>
<p>Die Tabelle wird in einem DBGrid korrekt geladen. Leider erscheint meine boolsche Spalte, wie gesagt, im BCB nicht als Bool sondern als ftSmallint mit (0,1). Eine Umstellung in der Eigenschaft des DataSets bei FieldDefs für die betroffene Spalte auf ftBool bleibt wirkungslos.</p>
<p>Wie kann ich die Daten im BCB als bool ansprechen?<br />
Wie geht man hier am besten vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187974/wie-können-boolsche-daten-aus-mysql-im-bcb-bearbeitet-werden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 01:09:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187974.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Jul 2007 23:17:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie können boolsche Daten aus MySQL im BCB bearbeitet werden? on Wed, 25 Jul 2007 23:17:54 GMT]]></title><description><![CDATA[<p>Hallo,<br />
in meiner MySQL DB habe ich eine Spalte mit boolschen Daten, die ich im BCB6 beackern möchte.<br />
Die boolschen Einträge werden in MySQL im sogenannten &quot;tinyint&quot; Format gespeichert, was im BCB6 scheinbar dem Typ &quot;ftSmallint&quot; entspricht.</p>
<p>Die Tabelle wird in einem DBGrid korrekt geladen. Leider erscheint meine boolsche Spalte, wie gesagt, im BCB nicht als Bool sondern als ftSmallint mit (0,1). Eine Umstellung in der Eigenschaft des DataSets bei FieldDefs für die betroffene Spalte auf ftBool bleibt wirkungslos.</p>
<p>Wie kann ich die Daten im BCB als bool ansprechen?<br />
Wie geht man hier am besten vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332639</guid><dc:creator><![CDATA[thunderbol4]]></dc:creator><pubDate>Wed, 25 Jul 2007 23:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie können boolsche Daten aus MySQL im BCB bearbeitet werden? on Thu, 26 Jul 2007 06:41:09 GMT]]></title><description><![CDATA[<p>du könntest z.B. nach dem Öffnen des Query folgendes tun (hier als Beispiel für die Formatierung von einem Floatfeld auf ein Numerisches Feld mit definierter Anzeige):</p>
<pre><code class="language-cpp">void __fastcall TForm7::IBQuery1AfterOpen(TDataSet *DataSet)
{
TNumericField *Field1 = dynamic_cast&lt;TNumericField*&gt;(DataSet-&gt;FieldByName(&quot;Umfang&quot;));
Field1-&gt;DisplayFormat = &quot;###,###,##0.00&quot;;
}
</code></pre>
<p>die Feldtypen stehen unter TField in der BCB-Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332705</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Thu, 26 Jul 2007 06:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to Wie können boolsche Daten aus MySQL im BCB bearbeitet werden? on Thu, 26 Jul 2007 21:21:07 GMT]]></title><description><![CDATA[<p>Hallo <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5990">@Linnea</a>, danke für Deinen Tipp</p>
<p>habe einen Analogversuch gestartet:</p>
<pre><code class="language-cpp">void __fastcall TForm1::ADODataSet2AfterOpen(TDataSet *DataSet){
 TBooleanField *Field_bool = dynamic_cast&lt;TBooleanField*&gt;(DataSet-&gt;FieldByName(&quot;ColumnBool&quot;));
 //Field_bool-&gt;DisplayValues = &quot;Yes;No&quot;;
}
</code></pre>
<p>Leider sind die Werte in meiner Spalte immer noch vom Typ ftSmallint und nicht ftBoolean.<br />
Die Zeile mit dynamic_cast läuft, wenn ich auskommentiere (wahrscheinlich löscht dann der Compiler die Zeile), stürzt aber mit einer Exception ab, wenn ich die Kommentare entferne.</p>
<p>Hast Du vielleich noch eine Idee? Welche Infos würdest Du noch benötigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333412</guid><dc:creator><![CDATA[thunderbol4]]></dc:creator><pubDate>Thu, 26 Jul 2007 21:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wie können boolsche Daten aus MySQL im BCB bearbeitet werden? on Sun, 29 Jul 2007 16:59:51 GMT]]></title><description><![CDATA[<p>Hallo,<br />
komme hier nicht weiter und habe nochmals mit dem Code-Vorschlag von <strong><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5990">@Linnea</a></strong> experimentiert:</p>
<pre><code class="language-cpp">...
bool BoolArray[300];
int i = 0;
....
  ADODataSet2-&gt;First();     
  while (!ADODataSet2-&gt;Eof){
    BoolArray[i] = dynamic_cast&lt;TBooleanField*&gt;(ADODataSet2-&gt;FieldByName(&quot;ColumnBool&quot;));
    ADODataSet2-&gt;Next();
    i++;
  }...
</code></pre>
<p>Also, der <strong>dynamic_cast</strong> von <strong><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5990">@Linnea</a></strong> ist korrekt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Im Test-Array werden entsprechend der Werte aus meiner MySQL-Tabelle (1,0) die Werte als true oder false eingetragen. In meinem DBGrid bleiben die Einträge leider bei 0 oder 1. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Leider wird auch jeder Umwandlungsversuch/Zugriff als Boolean mit einer Exception bestraft (Feld 'ColumnBool' kann nicht als Typ Boolean angesprochen werden).</p>
<p>Hängt das damit zusammen, dass in MySQL der Typ Boolean als Typ ftSmallint angelegt wird? Bei jeder Änderung unter BCB wird ja auch die Tabelle in MySQL aktualisiert. Wenn es dann kein Rückübersetzungsprogramm gibt, könnte das Probleme machen. Liege ich hier richtig?</p>
<p>Allerdings gibt es dieses Problem sicher schon länger? Und auch eine Lösung, oder?</p>
<p>Ich bitte um Eure Kommentierung. Danke. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1334445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1334445</guid><dc:creator><![CDATA[thunderbol4]]></dc:creator><pubDate>Sun, 29 Jul 2007 16:59:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie können boolsche Daten aus MySQL im BCB bearbeitet werden? on Sun, 29 Jul 2007 18:34:50 GMT]]></title><description><![CDATA[<p>Es sollte möglich sein, die OnGetText/OnSetText-Events des Fields benutzen, um die Ein- und Ausgabe nach Bedarf zu manipulieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1334513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1334513</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 29 Jul 2007 18:34:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie können boolsche Daten aus MySQL im BCB bearbeitet werden? on Thu, 02 Aug 2007 23:10:59 GMT]]></title><description><![CDATA[<p>Hallo <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/52">@Jansen</a>, erst mal Danke für Deinen Hinweis.<br />
bin Deinem Rat gefolgt u habe die Ereignisse OnSetText, OnGetText ausprobiert.<br />
Dazu habe ich die Spalten der MySQL-Tabelle als persistente Felder angelegt.</p>
<p>Das Ganze sieht dann mit problematischer Spalte &quot;ColumnBool&quot; so aus:</p>
<pre><code class="language-cpp">//Unit.h
..
TSmallintField *ADODataSet2ColumnBool;
..
//Unit.cpp
..
void __fastcall TForm1::ADODataSet2ColumnBoolGetText(TField *Sender,
      AnsiString &amp;Text, bool DisplayText){
  int Feldwert = Sender-&gt;AsInteger; //Sender == ColumnBool == Smallint
  if (Feldwert &gt; 0) Text = &quot;Yes&quot;;   //Feldwert == 1
  else Text = &quot;No&quot;;                 //Feldwert == 0
}
..
</code></pre>
<p>Okay, klappt, &quot;Yes&quot; bzw. &quot;No&quot; wird im DBGrid angezeigt. Das Ganze ist aber nach wie vor nur Pseudo-Bool. Überzeugend ist das aber noch nicht. Leider.</p>
<p><strong>Deshalb nochmals für mich eine Verständnisfrage:</strong><br />
Eine Spalte, die in einer MySQL-DB als Tinyint (= BCB6 Smallint) formatiert ist und in der nur die Feldinhalte (0,1) vorkommen, kann ich mit BCB6 im DBGrid nicht direkt als Boolean ansprechen (da datensensitiv). Ist diese Aussage richtig?<br />
Es ist nicht möglich z.B eine direkte Abfrage des DBGrid-Zellinhaltes, wie if (Feldwert == true) durchzuführen, es müßte dann heißen if (Feldwert ==1)? Ist das so korrekt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337742</guid><dc:creator><![CDATA[thunderbol4]]></dc:creator><pubDate>Thu, 02 Aug 2007 23:10:59 GMT</pubDate></item></channel></rss>