<?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[CDao irgendwas muss woll offen blieben]]></title><description><![CDATA[<p>Nachdem ich einen Dialog 8 mal geöffnet haben stürzt mein Programm nach einige Zeit später mit einen DaoFehler ab.Also denke ich das woll irgendetwas nicht richtig geschlossen wird.</p>
<p>OnInit des Dialog</p>
<pre><code class="language-cpp">BOOL SP_Eingeben_DL::OnInitDialog() 
{
 CDialog::OnInitDialog();
//Einstellungen für Editctrl das tausender punkte setzen kann(gekürzt)
 m_Pb_c.SetFormat(true);
 m_Pb_c.SetMaxLenght(6);
//Das Array zur Aufnahme der Werte der Radiobuttons vorbereiten
 rad_array.SetSize(11);
 for(int i =0;i &lt; 11;i++)
 {
  rad_array.SetAt(i,0);
 }

//Füllen der Kombinationsfelder(gekürzt)
 COleVariant val;
 CString sval;
 int ran;
 CDaoRecordset * r;
 ran = DB-&gt;AddRecordset(&quot;Select Name from Marken order by Name&quot;);//Öffnet die  DB wenn sie geschlossen ist und fügt dann ein Recordset zu einen Array hinzu
 r = DB-&gt;GetRecordset(ran);//Liefert das Recordset zurück
 while(!r-&gt;IsEOF())
 {
  r-&gt;GetFieldValue(&quot;Name&quot;,val);
  sval =val.pbVal;
  m_Marke_c.InsertString(-1,sval);
  r-&gt;MoveNext();
 }
m_Marke_c.SetCurSel(m_Marke_c.FindString(-1,&quot;Alle&quot;));
DB-&gt;returnRecordset(ran);//Teilt der Klasse mit das das Recordset nicht mehr benutzt wird
DB-&gt;DeleteRecordset(ran);//Schliesst das Recordset und löscht den Zeiger
//Der folgende Bereich wird ausgeführt wenn ein Eintrag geändert werden soll,hier müsste irgendwo der Fehler liegen
if(m_change)
{
  CString b;
  b.Format(&quot;%d&quot;,m_ID);
  CDaoRecordset * r4;
  int ran4;
  DB-&gt;recordset_type=dbOpenSnapshot;
  DB-&gt;recordset_options=dbReadOnly;
  ran4 = DB-&gt;AddRecordset(&quot;SELECT Suchparameter.*, Agenten.use_empty_ez, Kategorien.Name AS Kat_Nam, Marken.Name AS Mar_Nam, Farben.Name AS Far_Nam, Modelle.Modell_Name, Agenten.Name AS Agt_Nam FROM 
((((Kategorien INNER JOIN (Marken INNER JOIN Suchparameter ON Marken.intern_MarkenNr = Suchparameter.Marke) ON Kategorien.intern_KategorieNr = Suchparameter.Kategorie) 
INNER JOIN Farben ON Suchparameter.Farbe = Farben.intern_Farbnr) LEFT JOIN Modelle ON Suchparameter.Modell = Modelle.Modell_Nr) INNER JOIN Agent_Suchparameter_Link ON Suchparameter.IDNr = Agent_Suchparameter_Link.Sp_Nr) 
INNER JOIN Agenten ON Agent_Suchparameter_Link.Agent_Nr = Agenten.AgentNr 
WHERE Suchparameter.IDNr=&quot; + b);
 r4= DB-&gt;GetRecordset(ran4);
 DB-&gt;recordset_options = 0;
 DB-&gt;recordset_type=dbOpenDynaset;
 this-&gt;SetWindowText(&quot;Suchparameter ändern&quot;);
 m_Ok.SetWindowText(&quot;Ändern&quot;);
 r4-&gt;GetFieldValue(&quot;Modell_Name&quot;,val);
 m_Modell = val.pbVal;
 if(m_Modell ==&quot;Suchparameter&quot;) 
 {
  m_Modell =&quot;&quot;;
 }
 //Lesen der Werte aus der DB für die Optionbuttons
 for(int i2 =0;i2 &lt;11;i2++)
 {
  r4-&gt;GetFieldValue(16+i2,val);
  if(val.boolVal)
  {
   CButton *button =(CButton*)this-&gt;GetDlgItem(1070+i2);
   button-&gt;SetCheck(1);
   rad_array[i2] = 1;
  }
 }
 //setzen eines Strings aus der DB 
 r4-&gt;GetFieldValue(&quot;Kat_Nam&quot;,val);
 m_Kategorie=val.pbVal;
 //setzen einer Zahl aus der DB
 r4-&gt;GetFieldValue(&quot;Preis_max_real&quot;,val);	
 m_Pb_c.SetLong(val.intVal);
 //gekürzt es ist das selbe wie oben
 DB-&gt;returnRecordset(ran4);
 DB-&gt;DeleteRecordset(ran4);
 UpdateData(false);
}	
else
{
 //Bei Neueingabe die Werte auf 0 setzen(gekürzt)
 m_Pb_c.SetLong(0);
 m_Loeschen.ShowWindow(SW_HIDE);
 m_a_Loeschen.ShowWindow(SW_HIDE);
}
OnSelchangeCOMBOMa();
return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/54841/cdao-irgendwas-muss-woll-offen-blieben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 21:29:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/54841.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Nov 2003 12:55:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CDao irgendwas muss woll offen blieben on Tue, 11 Nov 2003 12:55:12 GMT]]></title><description><![CDATA[<p>Nachdem ich einen Dialog 8 mal geöffnet haben stürzt mein Programm nach einige Zeit später mit einen DaoFehler ab.Also denke ich das woll irgendetwas nicht richtig geschlossen wird.</p>
<p>OnInit des Dialog</p>
<pre><code class="language-cpp">BOOL SP_Eingeben_DL::OnInitDialog() 
{
 CDialog::OnInitDialog();
//Einstellungen für Editctrl das tausender punkte setzen kann(gekürzt)
 m_Pb_c.SetFormat(true);
 m_Pb_c.SetMaxLenght(6);
//Das Array zur Aufnahme der Werte der Radiobuttons vorbereiten
 rad_array.SetSize(11);
 for(int i =0;i &lt; 11;i++)
 {
  rad_array.SetAt(i,0);
 }

//Füllen der Kombinationsfelder(gekürzt)
 COleVariant val;
 CString sval;
 int ran;
 CDaoRecordset * r;
 ran = DB-&gt;AddRecordset(&quot;Select Name from Marken order by Name&quot;);//Öffnet die  DB wenn sie geschlossen ist und fügt dann ein Recordset zu einen Array hinzu
 r = DB-&gt;GetRecordset(ran);//Liefert das Recordset zurück
 while(!r-&gt;IsEOF())
 {
  r-&gt;GetFieldValue(&quot;Name&quot;,val);
  sval =val.pbVal;
  m_Marke_c.InsertString(-1,sval);
  r-&gt;MoveNext();
 }
m_Marke_c.SetCurSel(m_Marke_c.FindString(-1,&quot;Alle&quot;));
DB-&gt;returnRecordset(ran);//Teilt der Klasse mit das das Recordset nicht mehr benutzt wird
DB-&gt;DeleteRecordset(ran);//Schliesst das Recordset und löscht den Zeiger
//Der folgende Bereich wird ausgeführt wenn ein Eintrag geändert werden soll,hier müsste irgendwo der Fehler liegen
if(m_change)
{
  CString b;
  b.Format(&quot;%d&quot;,m_ID);
  CDaoRecordset * r4;
  int ran4;
  DB-&gt;recordset_type=dbOpenSnapshot;
  DB-&gt;recordset_options=dbReadOnly;
  ran4 = DB-&gt;AddRecordset(&quot;SELECT Suchparameter.*, Agenten.use_empty_ez, Kategorien.Name AS Kat_Nam, Marken.Name AS Mar_Nam, Farben.Name AS Far_Nam, Modelle.Modell_Name, Agenten.Name AS Agt_Nam FROM 
((((Kategorien INNER JOIN (Marken INNER JOIN Suchparameter ON Marken.intern_MarkenNr = Suchparameter.Marke) ON Kategorien.intern_KategorieNr = Suchparameter.Kategorie) 
INNER JOIN Farben ON Suchparameter.Farbe = Farben.intern_Farbnr) LEFT JOIN Modelle ON Suchparameter.Modell = Modelle.Modell_Nr) INNER JOIN Agent_Suchparameter_Link ON Suchparameter.IDNr = Agent_Suchparameter_Link.Sp_Nr) 
INNER JOIN Agenten ON Agent_Suchparameter_Link.Agent_Nr = Agenten.AgentNr 
WHERE Suchparameter.IDNr=&quot; + b);
 r4= DB-&gt;GetRecordset(ran4);
 DB-&gt;recordset_options = 0;
 DB-&gt;recordset_type=dbOpenDynaset;
 this-&gt;SetWindowText(&quot;Suchparameter ändern&quot;);
 m_Ok.SetWindowText(&quot;Ändern&quot;);
 r4-&gt;GetFieldValue(&quot;Modell_Name&quot;,val);
 m_Modell = val.pbVal;
 if(m_Modell ==&quot;Suchparameter&quot;) 
 {
  m_Modell =&quot;&quot;;
 }
 //Lesen der Werte aus der DB für die Optionbuttons
 for(int i2 =0;i2 &lt;11;i2++)
 {
  r4-&gt;GetFieldValue(16+i2,val);
  if(val.boolVal)
  {
   CButton *button =(CButton*)this-&gt;GetDlgItem(1070+i2);
   button-&gt;SetCheck(1);
   rad_array[i2] = 1;
  }
 }
 //setzen eines Strings aus der DB 
 r4-&gt;GetFieldValue(&quot;Kat_Nam&quot;,val);
 m_Kategorie=val.pbVal;
 //setzen einer Zahl aus der DB
 r4-&gt;GetFieldValue(&quot;Preis_max_real&quot;,val);	
 m_Pb_c.SetLong(val.intVal);
 //gekürzt es ist das selbe wie oben
 DB-&gt;returnRecordset(ran4);
 DB-&gt;DeleteRecordset(ran4);
 UpdateData(false);
}	
else
{
 //Bei Neueingabe die Werte auf 0 setzen(gekürzt)
 m_Pb_c.SetLong(0);
 m_Loeschen.ShowWindow(SW_HIDE);
 m_a_Loeschen.ShowWindow(SW_HIDE);
}
OnSelchangeCOMBOMa();
return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/391656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391656</guid><dc:creator><![CDATA[Andorxor]]></dc:creator><pubDate>Tue, 11 Nov 2003 12:55:12 GMT</pubDate></item></channel></rss>