<?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[[C++Builder] ADO + Transaktionen starten?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne in meinem Projekt verschiedene ADO-Komponenten benutzen. Die ADOConnection-Komponente besitz mehrere Methoden für Transaktionen zu starten zu commiten usw.</p>
<p>Kann mir jemand vielleicht mal ein Bsp-Code zeigen, wie man eine Transaction startet, und wenn alles klar gegangen ist diese commited oder wenn nicht einen Rollback durchführen!?</p>
<p>Vielen Dank!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137131/c-builder-ado-transaktionen-starten</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 07:50:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137131.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Feb 2006 14:14:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [C++Builder] ADO + Transaktionen starten? on Wed, 15 Feb 2006 14:14:43 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne in meinem Projekt verschiedene ADO-Komponenten benutzen. Die ADOConnection-Komponente besitz mehrere Methoden für Transaktionen zu starten zu commiten usw.</p>
<p>Kann mir jemand vielleicht mal ein Bsp-Code zeigen, wie man eine Transaction startet, und wenn alles klar gegangen ist diese commited oder wenn nicht einen Rollback durchführen!?</p>
<p>Vielen Dank!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994901</guid><dc:creator><![CDATA[skluge]]></dc:creator><pubDate>Wed, 15 Feb 2006 14:14:43 GMT</pubDate></item><item><title><![CDATA[Reply to [C++Builder] ADO + Transaktionen starten? on Wed, 15 Feb 2006 15:15:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if (ADOConnection1-&gt;Connected==true) {
    int i = ADOConnection1-&gt;BeginTrans();

    if (ADOConnection1-&gt;InTransaction) {
    ....
       if () 
          ADOConnection1-&gt;CommitTrans();
       else 
          ADOConnection1-&gt;RollbackTrans();

   }
}
</code></pre>
<p>War das die Frage? Das habe ich gerade aus der BCB-Hilfe herausgelesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/994994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/994994</guid><dc:creator><![CDATA[caspar_louis]]></dc:creator><pubDate>Wed, 15 Feb 2006 15:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to [C++Builder] ADO + Transaktionen starten? on Thu, 16 Feb 2006 09:55:19 GMT]]></title><description><![CDATA[<p>Von Prinzip her ist das die Lösung die ich gerne hätte, dafür schon mal danke!</p>
<p>Doch ich frage mich jetzt nur noch, wo ich meine Operationen die zu einer Transaktion gehören jetzt reinbringe?!<br />
Wenn ich aufrufe ADOConnection-&gt;BeginTransaktion kann ich dann die Operationen so reinbringen?:</p>
<pre><code>ADOConnection-&gt;BeginTransaktion()
{
   Operation1;
   Operation2;
   Methodenaufruf1;
   Operation3;
   Methodenauftruf2;

   usw.

}
</code></pre>
<p>Alle diese Operationen sollen zu einer Transaktion gehören! Und wenn bei einer dieser Operationen ein Fehler (z.B. die Verbindung zur DB wird getrennt) auftritt, dann soll ein Rollback durchgeführt werden! Ansonsten wird diese Transaktion mit Commit bestätigt.</p>
<p>Hast du/ihr eine Lösung?</p>
<p>Danke nochmal</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/995537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/995537</guid><dc:creator><![CDATA[skluge]]></dc:creator><pubDate>Thu, 16 Feb 2006 09:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to [C++Builder] ADO + Transaktionen starten? on Thu, 16 Feb 2006 10:16:50 GMT]]></title><description><![CDATA[<p>Alles was Du über diese Verbindung machst, gehört nach Öffnen der Transaktion zu dieser Transaktion.</p>
<p>Wenn Du also ein z.B. ADOQuery benutzt, dem diese Verbindung zuweist/zugewiesen hast und damit z.B. ein Insert ausführst, ist das innerhalb der Transaktion.</p>
<p>Bsp. 1</p>
<pre><code class="language-cpp">if (ADOConnection1-&gt;Connected==true) // Ist Verbindung hergestellt?
{
   int i = ADOConnection1-&gt;BeginTrans();  
   if (ADOConnection1-&gt;InTransaction)   // Ist Transaktion erfolgreich gestartet?
   {

      if (ADOQuery1-&gt;Active)
         ADOQuery1-&gt;Close();
      ADOQuery1-&gt;Connection=ADOConnection1;

      ADOQuery1-&gt;SQL-&gt;Clear();
      ADOQuery1-&gt;SQL-&gt;Add(&quot;insert into Table (Columns) values (Blabla)&quot;);
      int nReturn = ADOQuery1-&gt;ExecSQL();

      if (nReturn&gt;0)
         ADOConnection1-&gt;CommitTrans();
      else
         ADOConnection1-&gt;RollbackTrans();
   }
}
</code></pre>
<p>Genauso gut kannst Du die Vorbeitung Deiner Aktion auch außerhalb der Transaktion durchführen und nur die Ausführung selbst in der Transaktion.</p>
<p>Bsp. 12</p>
<pre><code class="language-cpp">if (ADOQuery1-&gt;Active)
    ADOQuery1-&gt;Close();

ADOQuery1-&gt;Connection=ADOConnection1;

ADOQuery1-&gt;SQL-&gt;Clear();
ADOQuery1-&gt;SQL-&gt;Add(&quot;insert into Table (Columns) values (Blabla)&quot;);

if (ADOConnection1-&gt;Connected==true) // Ist Verbindung hergestellt?
{
   int i = ADOConnection1-&gt;BeginTrans();  
   if (ADOConnection1-&gt;InTransaction)   // Ist Transaktion erfolgreich gestartet?
   {
     int nReturn=0; 

     if (ADOQuery1-&gt;Active=false)
         nReturn = ADOQuery1-&gt;ExecSQL();

      if (nReturn&gt;0)
         ADOConnection1-&gt;CommitTrans();
      else
         ADOConnection1-&gt;RollbackTrans();
   }
}
</code></pre>
<p>Neben ADOQuery geht natürlich auch ADOCommand etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/995556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/995556</guid><dc:creator><![CDATA[caspar_louis]]></dc:creator><pubDate>Thu, 16 Feb 2006 10:16:50 GMT</pubDate></item></channel></rss>