<?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[Verknüpfung zweier DataSources]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn ich zwei TTables habe, kann ich die eine ja automatisch mit der anderen durch MasterSource verbinden.</p>
<p>Nun habe ich aber zwei TQuerys. Wie funktioniert es da? Da habe ich kein Mastersource. Auch wenn ich ein TQuery und ein TTable verwende, kann ich in dem TTable nicht das Query als MasterSource verwenden.</p>
<p>WIe kann ich also zwei Tabellen verknüpfen, wobei eine Komponente ein Query ist?</p>
<p>DANKE!</p>
<p>strauberry</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/86947/verknüpfung-zweier-datasources</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 18:29:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/86947.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Sep 2004 09:11:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Fri, 24 Sep 2004 09:11:46 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn ich zwei TTables habe, kann ich die eine ja automatisch mit der anderen durch MasterSource verbinden.</p>
<p>Nun habe ich aber zwei TQuerys. Wie funktioniert es da? Da habe ich kein Mastersource. Auch wenn ich ein TQuery und ein TTable verwende, kann ich in dem TTable nicht das Query als MasterSource verwenden.</p>
<p>WIe kann ich also zwei Tabellen verknüpfen, wobei eine Komponente ein Query ist?</p>
<p>DANKE!</p>
<p>strauberry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614021</guid><dc:creator><![CDATA[strauberry]]></dc:creator><pubDate>Fri, 24 Sep 2004 09:11:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Fri, 24 Sep 2004 13:21:52 GMT]]></title><description><![CDATA[<p>Ist die Frage unklar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614237</guid><dc:creator><![CDATA[strauberry]]></dc:creator><pubDate>Fri, 24 Sep 2004 13:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Fri, 24 Sep 2004 13:49:58 GMT]]></title><description><![CDATA[<p>strauberry schrieb:</p>
<blockquote>
<p>Ist die Frage unklar?</p>
</blockquote>
<p>Scheint so...</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614255</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Fri, 24 Sep 2004 13:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Fri, 24 Sep 2004 14:04:45 GMT]]></title><description><![CDATA[<p>Ok dann versuche ich es mal etwas ausführlicher:</p>
<p>Ich habe zwei verschiedene Tabellen (DB-Dateien). Die eine enthält Personendaten und hat ein Feld ID_PERSONENDATEN.</p>
<p>Die andere Datei enthält Informationen zu den einzelnen Personen. Diese Tabelle hat ebenfalls ein Feld ID_PERSONENDATEN, mit dem die Daten später den oben genannten Personendaten zugeordnet werden wollen.</p>
<p>Soweit die Situation.</p>
<p>Nun kann ich das entweder so machen, dass ich das bei jedem Wechsel mittels DBNavigator (also beim &quot;Weiterschalten&quot; zum nächsten Datensatz) manuell auslese oder aber - und darum dreht sich meine Frage - ich mache es automatisch (Bei DBNavigator nbNext werden automatisch die dazugehörigen Dateien angezeigt).</p>
<p>Wenn ich zwei TTable verwende, kann ich in einem TTable die andere als MasterSource angeben. Über MasterFields kann ich dann die Indexes, die ich bei der Personen-DB eingerichtet habe dafür verwenden, die beiden zu Verknüpfen.<br />
Schalte ich dann per DBNavigator bei den Personendaten weiter, wird bei den Zusatzinfos automatisch alles zu der jeweiligen Person angezeigt (ist ja auch über ID_PERSONENDATEN verknüpft).</p>
<p>Wenn ich jetzt aber eine Query mit im Spiel habe, funktioniert das leider nicht mehr... Ein MasterSource gibt es nicht und die Indexes, die ich bei den tabellen erstellt habe, kann ich auch nicht verwenden.</p>
<p>Ist Params dabei eine Lösung?</p>
<p>DANKE!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614268</guid><dc:creator><![CDATA[strauberry]]></dc:creator><pubDate>Fri, 24 Sep 2004 14:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Fri, 24 Sep 2004 14:46:18 GMT]]></title><description><![CDATA[<p>Wenn ich Dich jetzt richtig verstanden habe, hast Du zwei Tabellen die in einer Master-Detail-Beziehung stehen.<br />
Ich weiß nicht, ob es ein Möglichkeit gibt die beiden Queries über eine graphische Programmierung miteinander zu verbinden.<br />
Mein Weg wäre im AfterScroll-Ereignis der Master-Query das Detail-Query nachzuziehen. Dabei könntest Du auch Parameter verwenden.<br />
Irgendwo - entweder in der IDE oder im Code - sollte dem DetailQuery ein Statement in der Form</p>
<pre><code>SELECT * FROM &lt;meine_detail_tabelle&gt; WHERE id_personendaten = :PARAM_ID_PERSONENDATEN
</code></pre>
<p>stehen. Prepared sollte dann auch auf true stehen.<br />
In der AfterScroll-Methode könnte dann so etwas stehen:</p>
<pre><code class="language-cpp">void __fastcall TWasWeissIchWas::MasterQueryAfterScroll(TDataSet* DataSet)
{
   DetailQuery-&gt;Active = false;
   DetailQuery-&gt;ParamByName(&quot;PARAM_ID_PERSONENDATEN&quot;)-&gt;AsInteger = MasterQuery-&gt;FieldByName(&quot;ID_PERSONENDATEN&quot;)-&gt;AsInteger;
   DetailQuery-&gt;Active = true;
}
</code></pre>
<p>Wenn Du beispielsweise nur ein Feld aus einer anderen Tabelle anzeigen willst, z.B. Deine Master-Tabelle hat ein Feld vom Typ int<br />
und Deine andere Tabelle hat zu jedem int-Wert eine Bezeichnung als String gespeichert, kannst Du auch persistente Felder verwenden.<br />
Mit einem Lookup-Feld kannst Du dann sozusagen eine Übersetzung der int-Wert auf Texte vornehmen. Das geht übrigens auch zur Lauf-<br />
zeit.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614298</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Fri, 24 Sep 2004 14:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Sat, 25 Sep 2004 10:39:09 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>genau sowas hatte ich gesucht, danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Jetzt gibt es nur noch ein Problem beim Compilieren...</p>
<p>Im DetailQuery habe ich zur Entwicklungszeit folgendes SQL:</p>
<p>SELECT * FROM DetailQuery WHERE ID_PERSONENDATEN = :PARAM_ID_PERSONENDATEN</p>
<p>Im DetailQuery finde ich im Objekt-Inspektor unter &quot;Params&quot; folgendes:<br />
PARAM_ID_PERSONENDATEN<br />
Als DataType integer und ParamType Input (Wieso kann ich hier eigentlich zur Entwicklungszeit keine neuen anlegen?)</p>
<p>In das AfterScroll-Event des Master habe ich folgendes gepackt:</p>
<pre><code>Detail-&gt;Active = false;
   Detail-&gt;ParamByName(&quot;PARAM_ID_PERSONENDATEN&quot;)-&gt;AsInteger = Query_Personendaten-&gt;FieldByName(&quot;ID_PERSONENDATEN&quot;)-&gt;AsInteger;
   Detail-&gt;Active = true;
</code></pre>
<p>Wenn ich jetzt aber compiliere, erscheint eine BDEException:</p>
<p>Detail: Parameter &quot;PARAM_ID_PERSONENDATEN&quot; nicht gefunden</p>
<p>Was ist noch falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614648</guid><dc:creator><![CDATA[strauberry]]></dc:creator><pubDate>Sat, 25 Sep 2004 10:39:09 GMT</pubDate></item><item><title><![CDATA[Reply to Verknüpfung zweier DataSources on Sat, 25 Sep 2004 17:54:28 GMT]]></title><description><![CDATA[<p>Vielleicht hilft es, Prepared auf true zu setzen oder wahlweise Prepare() aufzurufen.<br />
Ansonsten wäre es natürlich noch möglich, dass Deine verwendete Datenbank parametrisierte Statements nicht unterstützt.<br />
Dann könntest Du Dir immen noch helfen, indem Du das Statemtent jedes mal neu zusammenbaust, was bei integer-Feldern nicht so kritisch ist.<br />
Bei String-Feldern kann es da schon eher zu Problemen kommen (z.B. mit Hochkommas im String).</p>
<p>Das mit dem Prepare() könnte so aussehen:</p>
<pre><code class="language-cpp">Detail-&gt;Active = false;
   Detail-&gt;Prepare();
   Detail-&gt;ParamByName(&quot;PARAM_ID_PERSONENDATEN&quot;)-&gt;AsInteger = Query_Personendaten-&gt;FieldByName(&quot;ID_PERSONENDATEN&quot;)-&gt;AsInteger;
   Detail-&gt;Active = true;
</code></pre>
<p>Du kannst natürlich auch mal im Debugger schauen, ob die Parameter überhaupt angelegt wurden.</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614902</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Sat, 25 Sep 2004 17:54:28 GMT</pubDate></item></channel></rss>