<?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[Verbindung zu einer SQL-Tabelle überprüfen]]></title><description><![CDATA[<p>Guten Tag</p>
<p>Ich muss bei meinem Tool beim Start des Programms die Verbindung zu der MySQL-Tabelle überprüfen.</p>
<p>Ich habe ein TDatabase Objekt und TQuery Objekt. Die Verbindung wird ja dabei über die ODBC-Schnittstelle hergestellt.</p>
<p>Nun muss ich eben die Verbindung zu der SQL-Tabelle überprüfen, sprich ob die Verbinung steht oder eben nicht..</p>
<p>Habt ihr mir evtl einen Tipp? Ich habe es wie folgt versucht:</p>
<pre><code>if(Database1-&gt;Connected == true)
{
// ..
}
else
{
// ..
}
</code></pre>
<p>Jedoch funktioniert dies leider nicht.. Sonst im Notfall würde mir auch reichen eine Überprüfung ob der Server noch on ist, aber schon lieber ob die Verbindung zu dem Server besteht..</p>
<p>Besten Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155930/verbindung-zu-einer-sql-tabelle-überprüfen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 01:52:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155930.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Aug 2006 10:25:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Fri, 11 Aug 2006 10:25:16 GMT]]></title><description><![CDATA[<p>Guten Tag</p>
<p>Ich muss bei meinem Tool beim Start des Programms die Verbindung zu der MySQL-Tabelle überprüfen.</p>
<p>Ich habe ein TDatabase Objekt und TQuery Objekt. Die Verbindung wird ja dabei über die ODBC-Schnittstelle hergestellt.</p>
<p>Nun muss ich eben die Verbindung zu der SQL-Tabelle überprüfen, sprich ob die Verbinung steht oder eben nicht..</p>
<p>Habt ihr mir evtl einen Tipp? Ich habe es wie folgt versucht:</p>
<pre><code>if(Database1-&gt;Connected == true)
{
// ..
}
else
{
// ..
}
</code></pre>
<p>Jedoch funktioniert dies leider nicht.. Sonst im Notfall würde mir auch reichen eine Überprüfung ob der Server noch on ist, aber schon lieber ob die Verbindung zu dem Server besteht..</p>
<p>Besten Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1115158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1115158</guid><dc:creator><![CDATA[simons]]></dc:creator><pubDate>Fri, 11 Aug 2006 10:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Fri, 11 Aug 2006 10:31:10 GMT]]></title><description><![CDATA[<p>einfache moeglichkeit unter der annahme dass du nicht allzu oft pruefen musst waere, einfach was abzufragen, etwa &quot;COUNT (*) FROM users;&quot;.... und wenn da was zurueckkommt besteht ne verbindung....<br />
in dem fall sollte aber der timeout recht niedrig eingestellt sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1115163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1115163</guid><dc:creator><![CDATA[loki1985]]></dc:creator><pubDate>Fri, 11 Aug 2006 10:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Mon, 14 Aug 2006 12:54:00 GMT]]></title><description><![CDATA[<p>also ich habe das nun mal wiefolgt versucht:</p>
<pre><code>void __fastcall Tfrmmain::Timer1Timer(TObject *Sender)
{
//
try
{
SQL_ETS-&gt;Close();
SQL_ETS-&gt;SQL-&gt;Clear();
SQL_ETS-&gt;SQL-&gt;Add(&quot;SELECT id FROM user LIMIT 1&quot;);
SQL_ETS-&gt;ExecSQL();
SQL_ETS-&gt;Open();

disconnect = 0;
}
catch (...)
{
// Fehler
disconnect = 1;
}
}
</code></pre>
<p>Hat mir jemand sonst noch einen Tipp, wie ich das machen könnte? Evtl mit einem Ping zu der IP des Servers, wie würde dies gehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1116935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1116935</guid><dc:creator><![CDATA[simons]]></dc:creator><pubDate>Mon, 14 Aug 2006 12:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Mon, 14 Aug 2006 13:31:15 GMT]]></title><description><![CDATA[<p>Lies dir in der BCB-Hilfe bitte bei TQuery und ExecSQL bzw. Open durch wann was verwendet wird, da du dort einen Fehler hast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1116975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1116975</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Mon, 14 Aug 2006 13:31:15 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Tue, 15 Aug 2006 17:32:54 GMT]]></title><description><![CDATA[<p>Linnea schrieb:</p>
<blockquote>
<p>Lies dir in der BCB-Hilfe bitte bei TQuery und ExecSQL bzw. Open durch wann was verwendet wird, da du dort einen Fehler hast</p>
</blockquote>
<p>hm, sehe den fehler gerade nicht so ganz.. aber diese abfrage funktioniert eigentlich, das problem ist einfach, dass sich das programm im tray aufhängt, wenn keine verbindung besteht..</p>
<p>eine andere möglichkeit wäre ja mit einem ping an den server.. wie würde dies funktionieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117765</guid><dc:creator><![CDATA[simons]]></dc:creator><pubDate>Tue, 15 Aug 2006 17:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Tue, 15 Aug 2006 17:47:02 GMT]]></title><description><![CDATA[<p>Du solltest trotzdem ExecSQL hier weglassen. Du brauchst sowieso nur ExecSQL oder Open (hier Open).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117775</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 15 Aug 2006 17:47:02 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Tue, 15 Aug 2006 18:22:26 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Thema Ping : Im Indy-Package gibt es eine Ping-Komponente. Damit kannst du an den Server und Port testen.<br />
Allerdings heißt eine Antwort nicht, das dort an dem Port ein MySQL-Server läuft, nur das <em>irgendetwas</em> dort läuft.</p>
<p>Ich verstehe nicht warum du mit</p>
<blockquote>
<p>if(Database1-&gt;Connected == true)</p>
</blockquote>
<p>Probleme hast. Wenn die Datenbank-Kompo verbunden ist läuft der Server, wenn nicht dann kann keine Verbinduing hergestellt werden. Sollte doch völlig reichen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117789</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 15 Aug 2006 18:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Tue, 15 Aug 2006 19:18:54 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Thema Ping : Im Indy-Package gibt es eine Ping-Komponente. Damit kannst du an den Server und Port testen.<br />
Allerdings heißt eine Antwort nicht, das dort an dem Port ein MySQL-Server läuft, nur das <em>irgendetwas</em> dort läuft.</p>
</blockquote>
<p>Und welche Komponente, wäre dies? Da gibt es ja so einige und keine die mit Ping heisst..</p>
<p>akari schrieb:</p>
<blockquote>
<p>Ich verstehe nicht warum du mit</p>
<blockquote>
<p>if(Database1-&gt;Connected == true)</p>
</blockquote>
<p>Probleme hast. Wenn die Datenbank-Kompo verbunden ist läuft der Server, wenn nicht dann kann keine Verbinduing hergestellt werden. Sollte doch völlig reichen.</p>
</blockquote>
<p>Naja gute Frage.. Keine Ahnung, da hängt sich das Programm einfach auf, da es trotzdem durch diese If-Anweisung geht..</p>
<p>Muss natürlich sagen, dass ich um dies zu testen, immer meine Internet-Verbindung trenne und nicht die zum Server, aber sollte ja eigentlich aufs selbe ankommen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117816</guid><dc:creator><![CDATA[simons]]></dc:creator><pubDate>Tue, 15 Aug 2006 19:18:54 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Tue, 15 Aug 2006 19:28:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Und welche Komponente, wäre dies? Da gibt es ja so einige und keine die mit Ping heisst..</p>
</blockquote>
<p>das liegt daran das Ping nur ein umgangsprachlicher Begriff ist. Das Protokoll heißt richtig <a href="http://de.wikipedia.org/wiki/ICMP" rel="nofollow">ICMP</a>. Und deshalb heißt die Indy-Komponente auch <em>TIdICMP</em></p>
<blockquote>
<p>Naja gute Frage.. Keine Ahnung, da hängt sich das Programm einfach auf, da es trotzdem durch diese If-Anweisung geht..</p>
</blockquote>
<p>Bestimmt nicht wegen dieser Abfrage, der grund wird eher sein das du vort dieser Abfrage schon auf die nicht-verbundene Kompo zugreifen willst.<br />
Das solltest du lieber debuggen. Auch ein Minimalbeispiel wär gut. Desweiteren kannst du Fehelr beim Verbindungsaufbau auch durch entstrechende Exceptions abfangen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1117820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1117820</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 15 Aug 2006 19:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to Verbindung zu einer SQL-Tabelle überprüfen on Wed, 16 Aug 2006 15:03:01 GMT]]></title><description><![CDATA[<blockquote>
<p>Und welche Komponente, wäre dies? Da gibt es ja so einige und keine die mit Ping heisst..<br />
das liegt daran das Ping nur ein umgangsprachlicher Begriff ist. Das Protokoll heißt richtig <a href="http://de.wikipedia.org/wiki/ICMP" rel="nofollow">ICMP</a>. Und deshalb heißt die Indy-Komponente auch <em>TIdICMP</em></p>
</blockquote>
<p>Also erstmal besten Dank. Habe mir nun mal diese Komonente angeschaut..</p>
<pre><code>void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
IdIcmpClient1-&gt;Host = &quot;marcluethi2.homeunix.com&quot;;
IdIcmpClient1-&gt;Port = 3306;
IdIcmpClient1-&gt;Ping();
if(IdIcmpClient1-&gt;ReplyStatus.ReplyStatusType == rsTimeOut)
  {
  Application-&gt;MessageBoxA(&quot;Verbindung: Fehler!&quot;,&quot;...&quot;,0);
  }
}
</code></pre>
<p>Mein Problem.. Der Timer habe ich auf 5 sec gestellt und das TimeOut auf 2sec. Wenn das Programm jedoch schon einmal durch die If-Schlaufe gegangen ist funktioniert das Pring nicht mehr.. Kommt ein Socket-Fehler.</p>
<blockquote>
<p>Naja gute Frage.. Keine Ahnung, da hängt sich das Programm einfach auf, da es trotzdem durch diese If-Anweisung geht..<br />
Bestimmt nicht wegen dieser Abfrage, der grund wird eher sein das du vort dieser Abfrage schon auf die nicht-verbundene Kompo zugreifen willst.<br />
Das solltest du lieber debuggen. Auch ein Minimalbeispiel wär gut. Desweiteren kannst du Fehelr beim Verbindungsaufbau auch durch entstrechende Exceptions abfangen.</p>
</blockquote>
<p>Ich denke ich habe nun das Problem gefunden.. Habe ein Projekt eröffnet, welches nur die Verbindung überprüft und diese dann versucht wieder aufzubauen, wenn sie nicht besteht.. So wie ich nun dies gesehen habe, ist Database1-&gt;Connected nur die Verbindung zu der ODBC-Schnitstelle.. und nicht bis zum Server. Kann das mir nur so erklähren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1118482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1118482</guid><dc:creator><![CDATA[simons]]></dc:creator><pubDate>Wed, 16 Aug 2006 15:03:01 GMT</pubDate></item></channel></rss>