<?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[CListCtrl fuellen (again)]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin noch nicht wirklich weiter gekommen mit meinem Problem.<br />
Also nochmals von Anfang an:<br />
Ich erstelle eine SDI-Anwendung. Mit dieser greife ich auf eine Datenbank zu. Soweit so gut. Ich kann mich auch zwischen meinen Datensaetzen hin und her bewegen. Das problem an der Sache ist, dass ich mir die Datensaetze nur einzeln (in einem Edit-Feld) anschauen kann. Ich moechte aber, dass mir alle Datensaetze aufgelistet werden (in Tabellenform). Dazu benutze ich ein ListCtrl-Element (report). Nach vielen Lesen und probieren, kann ich ein CListCtrl-Element in einer Dialog-Anwendung &quot;per Hand&quot; fuellen. Ausserdem hab ich gelernt, wie ich Daten aus einem Editfield in ein CListCtrl uebernehmen kann (wiederum dialog Anwendung). Ich bekomme es aber nicht gebacken, das ClistCrtl mit den Daten meiner Datenbank zu fuellen. Gibt es denn da nirgends eine Step-for-Step Anleitung? Ich bin hier schon am verzweifeln.</p>
<p>Tschau Arndtinho</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/6039/clistctrl-fuellen-again</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 12:31:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/6039.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Jun 2003 08:51:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 08:51:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin noch nicht wirklich weiter gekommen mit meinem Problem.<br />
Also nochmals von Anfang an:<br />
Ich erstelle eine SDI-Anwendung. Mit dieser greife ich auf eine Datenbank zu. Soweit so gut. Ich kann mich auch zwischen meinen Datensaetzen hin und her bewegen. Das problem an der Sache ist, dass ich mir die Datensaetze nur einzeln (in einem Edit-Feld) anschauen kann. Ich moechte aber, dass mir alle Datensaetze aufgelistet werden (in Tabellenform). Dazu benutze ich ein ListCtrl-Element (report). Nach vielen Lesen und probieren, kann ich ein CListCtrl-Element in einer Dialog-Anwendung &quot;per Hand&quot; fuellen. Ausserdem hab ich gelernt, wie ich Daten aus einem Editfield in ein CListCtrl uebernehmen kann (wiederum dialog Anwendung). Ich bekomme es aber nicht gebacken, das ClistCrtl mit den Daten meiner Datenbank zu fuellen. Gibt es denn da nirgends eine Step-for-Step Anleitung? Ich bin hier schon am verzweifeln.</p>
<p>Tschau Arndtinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29316</guid><dc:creator><![CDATA[Arndtinho]]></dc:creator><pubDate>Thu, 05 Jun 2003 08:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 09:41:00 GMT]]></title><description><![CDATA[<p>Wozu überhaupt ein Edit Feld ???</p>
<p>Ich habe doch erst vor ein paar Wochen hier den kompletten code gepostet !!!</p>
<p>Also nochmal von vorn:</p>
<p>Du hast doch eine ..Set Klasse von deinem Tabelle, wenn nicht erstell eine (Abgeleitet von CRecordSet).</p>
<pre><code class="language-cpp">..Set db;
CString sql;
        sql = &quot;select * from DeineTabelle where ...... ='&quot;;
try 
    {
        db.Open(CRecordset::snapshot, sql);

        if(db.IsEOF())                  // Wenn kein Datensatz gefunden wird 
        {
            AfxMessageBox(&quot;Konnte keine gültigen Datensatz in Tabelle finden&quot;, MB_ICONEXCLAMATION);
            return;
        }
        else
            {
                           db.MoveFirst();
                              do
                {

                    int nr = m_liste.InsertItem(1, db.m_DATENSATZ); 
                    m_liste.SetItemText(nr, 1, db.m_...);
                    m_liste.SetItemText(nr, 2, db.m_..);
                    m_liste.SetItemText(nr, 3, db.m_..);

                    db.MoveNext();
                }
                         while(!db.IsEOF());
            }
        db.Close();

    }
    catch(CDBException* e)
    {
        AfxMessageBox( e-&gt;m_strError, MB_ICONEXCLAMATION );
        return;
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/29317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29317</guid><dc:creator><![CDATA[goochie]]></dc:creator><pubDate>Thu, 05 Jun 2003 09:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 09:59:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich weis, sorry.<br />
Also meine Set-Klasse sieht so aus:</p>
<p>class CDB_0Set : public CRecordset<br />
{<br />
public:<br />
CDB_0Set(CDatabase* pDatabase = NULL);<br />
DECLARE_DYNAMIC(CDB_0Set)</p>
<p>// Field/Param Data<br />
//{{AFX_FIELD(CDB_0Set, CRecordset)<br />
long m_ID;<br />
CString m_Name;<br />
CString m_Vorname;<br />
//}}AFX_FIELD</p>
<p>// Overrides<br />
// ClassWizard generated virtual function overrides<br />
//{{AFX_VIRTUAL(CDB_0Set)<br />
public:<br />
virtual CString GetDefaultConnect(); // Default connection string<br />
virtual CString GetDefaultSQL(); // default SQL for Recordset<br />
virtual void DoFieldExchange(CFieldExchange* pFX); // RFX support<br />
//}}AFX_VIRTUAL</p>
<p>// Implementation<br />
#ifdef _DEBUG<br />
virtual void AssertValid() const;<br />
virtual void Dump(CDumpContext&amp; dc) const;<br />
#endif</p>
<p>}</p>
<p>Dann habe ich noch in meiner CDB_0View-Class ein CListCtrl-Steuerelement.</p>
<p>Ich komme jetzt aber nicht ganz mit, wo ich den Code, den Du mir gepostet, hast eintragen muss.<br />
ICh bin Dir aber fuer Deine Hilfe dankbar.</p>
<p>Tschau Arndtinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29318</guid><dc:creator><![CDATA[Arndtinho]]></dc:creator><pubDate>Thu, 05 Jun 2003 09:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 11:10:00 GMT]]></title><description><![CDATA[<p>Ich habe jetzt ein wenig rumprobiert und den Code von Dir in meine Set-Klasse geschrieben. Nachdem ich alle Fehler beseitigt habe und das Programm starten will kommt ein Fehler. Ich klicke also auf den Debug-Button und da bringt erscheint folgende Meldung:</p>
<p>&quot;nhandled exception in test_0.exe (MFC42D.DLL): 0xC00000FD: Stack Overflow&quot;</p>
<p>Ich weis ja, das da irgendwas ueberladen ist, aber was?</p>
<p>Tschau Arndtinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29319</guid><dc:creator><![CDATA[Arndtinho]]></dc:creator><pubDate>Thu, 05 Jun 2003 11:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 11:46:00 GMT]]></title><description><![CDATA[<p>Okk !!</p>
<p>der Code gehört natürlich nicht in die Set Klasse, die sind nur für die Tabellen deiner DB da !!</p>
<p>Wenn du eine DialogAnwendung hast, dann in die Dlg- Klasse, wenn SDI, dann in die View, halt da wo du auf die DB zugreifen willst !! (In diesem Fall die CDB_0View Klasse)</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29320</guid><dc:creator><![CDATA[goochie]]></dc:creator><pubDate>Thu, 05 Jun 2003 11:46:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 12:19:00 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ok, hab ich gemacht (blablaView.cpp). sieht jetzt so aus:</p>
<p>CBlablaView::CBlablaView()<br />
: CRecordView(CBlablaView::IDD)<br />
{<br />
//{{AFX_DATA_INIT(CBlablaView)<br />
// NOTE: the ClassWizard will add member initialization here<br />
m_pSet = NULL;<br />
//}}AFX_DATA_INIT<br />
// TODO: add construction code here</p>
<p>CBlablaSet db;<br />
CString sql;<br />
sql = &quot;select * from names&quot;;<br />
try<br />
{<br />
db.Open(CRecordset::snapshot, sql);</p>
<p>if(db.IsEOF()) // Wenn kein Datensatz gefunden wird<br />
{<br />
AfxMessageBox(&quot;Konnte keine gültigen Datensatz in Tabelle finden&quot;, MB_ICONEXCLAMATION);<br />
return;<br />
}<br />
else<br />
{<br />
db.MoveFirst();<br />
do<br />
{</p>
<p>int nr = m_Liste.InsertItem(1, db.m_Name);<br />
m_Liste.SetItemText(nr, 1, db.m_Name);<br />
m_Liste.SetItemText(nr, 2, db.m_Vorname);</p>
<p>db.MoveNext();<br />
}<br />
while(!db.IsEOF());<br />
}<br />
db.Close();</p>
<p>}<br />
catch(CDBException* e)<br />
{<br />
AfxMessageBox( e-&gt;m_strError, MB_ICONEXCLAMATION );<br />
return;<br />
}</p>
<p>}</p>
<p>Beim Kompilieren kommt keine Fehlermeldung. Auch wenn die Datenbank leer ist funktioniert es. Aber sobald ich Werte in die datenbank eintrage funktioniert es nicht mehr.</p>
<p>Tschau Arndtinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29321</guid><dc:creator><![CDATA[Arndtinho]]></dc:creator><pubDate>Thu, 05 Jun 2003 12:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 12:56:00 GMT]]></title><description><![CDATA[<p>Autsch !!!</p>
<p>Sorry, aber da gehört es auch nicht hin, das ist der Konstrucktor.<br />
Es gibt doch einen bestimmten Punkt zur Laufzeit, wo du die Daten reinholst, Button, Timer etc. in solche Methoden kannst du es auch reinschmeißen.</p>
<p>Wenn du es Beim Programmstart haben willst, benutze die OnInitialUpdate Methode</p>
<blockquote>
<p>int nr = m_Liste.InsertItem(1, db.m_Name);<br />
m_Liste.SetItemText(nr, 1, db.m_Name);</p>
</blockquote>
<p>Wieso füllst du zwei Felder mit einem und dem selben Datensatz ???</p>
<p>Ach ja, folgenden Code brauchst auch für den ListCtrl:</p>
<pre><code class="language-cpp">m_Liste.SetExtendedStyle(m_Liste.GetExtendedStyle() | LVS_EX_FULLROWSELECT +1);
    m_Liste.InsertColumn(0,  &quot;Name&quot;,        LVCFMT_LEFT,  60);
</code></pre>
<p>Für CListCtrl -&gt; MSDN, oder die Suchfunktion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29322</guid><dc:creator><![CDATA[goochie]]></dc:creator><pubDate>Thu, 05 Jun 2003 12:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl fuellen (again) on Thu, 05 Jun 2003 13:20:00 GMT]]></title><description><![CDATA[<p>langsam verliere ich den ueberblick (wenn ich ihn jemals bessesen habe).<br />
hast du nicht irgendwo eine beispielanwendung, die du mir schicken koenntest (als anschauungsobjekt)?<br />
mit php ist das irgendwie alles viel einfacher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p><a href="mailto:Arndtinho@gmx.net" rel="nofollow">Arndtinho@gmx.net</a></p>
<p>Arndtinho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/29323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/29323</guid><dc:creator><![CDATA[Arndtinho]]></dc:creator><pubDate>Thu, 05 Jun 2003 13:20:00 GMT</pubDate></item></channel></rss>