<?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: Wie setzt man mit LVN_GETDISPINFO die ItemData?]]></title><description><![CDATA[<p>Also, ich versuche das hier nachzumachen: <a href="http://www.codeproject.com/listctrl/virtuallist.asp" rel="nofollow">http://www.codeproject.com/listctrl/virtuallist.asp</a></p>
<p>Da steht ja, wie das für die Texte geht. (Klappt auch noch nicht, aber das suche ich gleich weiter.)<br />
Aber wie geht es für die ItemData? Ich arbeite da extrem viel mit. Oder muss ich das nun anders lösen?</p>
<p>Die MSDN schweigt sich freundlicherweise aus. Trotz Komplettinstallation und keinem Filter bekomme ich die Meldung, dass das Thema nicht existiert. <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/topic/169241/clistctrl-wie-setzt-man-mit-lvn_getdispinfo-die-itemdata</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 13:45:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169241.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Jan 2007 13:45:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 13:45:56 GMT]]></title><description><![CDATA[<p>Also, ich versuche das hier nachzumachen: <a href="http://www.codeproject.com/listctrl/virtuallist.asp" rel="nofollow">http://www.codeproject.com/listctrl/virtuallist.asp</a></p>
<p>Da steht ja, wie das für die Texte geht. (Klappt auch noch nicht, aber das suche ich gleich weiter.)<br />
Aber wie geht es für die ItemData? Ich arbeite da extrem viel mit. Oder muss ich das nun anders lösen?</p>
<p>Die MSDN schweigt sich freundlicherweise aus. Trotz Komplettinstallation und keinem Filter bekomme ich die Meldung, dass das Thema nicht existiert. <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/1201907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1201907</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 03 Jan 2007 13:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 15:24:27 GMT]]></title><description><![CDATA[<p>Es gibt kein Itemdata in einer virtuellen Liste. Du sagst nur das heir sosundsoviele Einträge sind. Im Endeffekt hast Du einen eigenen Array in dem Du dann weist Zeile 4711 wird angezeigt und dazu gehören eben die daten aus dem Slot 4711 ener Map, eines Arrays oder sonst etwas.</p>
<p>In dem Fall einer virtuellen Liste verwaltet das Listcontrol nichts! Deshalb ist es irrsinnig schnell, weil Du nur sagst wieviele Items vorhanden sind. InsertItemist nicht notwendig!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202022</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 03 Jan 2007 15:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 15:56:29 GMT]]></title><description><![CDATA[<p>Ahso, schade. Dann muss ich die Stellen auch noch anpassen.<br />
Das Daten muss ich wohl trotzdem noch in einen Thread auslagern. Mal schauen wie ich das löse. Das ist nämlich die Bremse, nicht das Anzeigen. <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/1202036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202036</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 03 Jan 2007 15:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 16:45:49 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Das Daten muss ich wohl trotzdem noch in einen Thread auslagern. Mal schauen wie ich das löse. Das ist nämlich die Bremse, nicht das Anzeigen. <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>
</blockquote>
<p>Verstehe ich nicht ganz. Was ist die Bremse? &quot;Das Daten&quot; verstehe ich nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202064</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 03 Jan 2007 16:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 17:41:25 GMT]]></title><description><![CDATA[<p>Ups, da hatte ich ein Wort vergessen: &quot;Das Daten laden&quot; aus der Datenbank (MSDE) per ODBC (dass das saulahm ist, habe ich zu spät erfahren) ist die Bremse.<br />
Grob kann man sagen: pro 100 Zeilen 1 Sekunde.<br />
Ich muss wohl nochmal gucken, ob ich ein paar Querys reduzieren kann. Da werden nämlich noch zig Tabellen querverbunden.</p>
<p>Man kann trotz der langen Ladezeit prima damit arbeiten, hab ich heute ja (das Modul geht gerade in Betrieb, daher zum ersten Mal so viele Datensätze).<br />
Man darf nur nicht auf die Anzeige warten, einfach tippen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202108</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 03 Jan 2007 17:41:25 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 18:08:31 GMT]]></title><description><![CDATA[<p>Wichtig bei MSDE und MS-SQL Server. Es ist nicht das Laden der Daten was normalerweise Geschwindkeit kostet, sondern der Query selber. Die Daten rauschen normalerweise nur so rein, wenn mal das Ergebnis da ist.<br />
Wichtig ist auch nur die Daten zu übertragen, die auch benötigt werden. Also alle unnötigen Spalten unbedingt weglassen.</p>
<p>Per OLE-DB und MSDE/MS-SQL komme ich auf bis zu 20000 Zeilen pro Sekunden über ein normales Netzwerk, wenn die Datensätze kurz sind.</p>
<p>Welcher Cursor-Typ wird verwendet, dass spielt natürlich auch eine Rolle?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202132</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 03 Jan 2007 18:08:31 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Wed, 03 Jan 2007 18:15:09 GMT]]></title><description><![CDATA[<p>Also, ich arbeite mit CRecordsets, die der Assistent erstellt hat.<br />
Kann ich den cursortyp da nachgucken? Ich weiß nämlich leider nicht so genau, was du meinst.</p>
<p>Und nur die Spalten, die ich wirklich brauche? Dann würde sich wohl doch ein View anbieten. Das könnte wirklich deutlich schneller sein, ich habe eine ziemlich vermurkste Ladestruktur. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202140</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 03 Jan 2007 18:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Thu, 04 Jan 2007 08:35:21 GMT]]></title><description><![CDATA[<p>Du gibst den Cursor Typ beim Open des CRecordsets an.<br />
Der Default verwendet AFX_DB_USE_DEFAULT_TYPE, was darauf hinausläuft das der CRecordset::snapshot verwendet wird (Vorbelegung von m_nDefaultType).<br />
snapshot ist Bidfirektional, da Du die Daten aber wahrschenlich nur einfach durchliest würde CRecordset::forwardOnly auch genügen. Das kan auch noch Geschwindigkeit bringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202425</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 04 Jan 2007 08:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Thu, 04 Jan 2007 09:03:12 GMT]]></title><description><![CDATA[<p>Also, die Umstellung auf einen View hat schon mal 2 Sekunden gebracht.<br />
Leider bekomme ich, wenn ich auf</p>
<pre><code class="language-cpp">m_nDefaultType = forwardOnly;
</code></pre>
<p>ändere, folgenden Fehler bei einer Abfrage eines anderen Recordsets:</p>
<blockquote>
<p>Die Verbindung ist mit Ergebnissen von einem anderen hstmt belegt.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Der Fehler kommt immer und immer wieder...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202448</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 04 Jan 2007 09:03:12 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Thu, 04 Jan 2007 09:08:04 GMT]]></title><description><![CDATA[<p>Du must ja nicht gleich den Default ändern, Du kannst ja auch beim Open angeben, welchen Modus Du möchtest!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202452</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 04 Jan 2007 09:08:04 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Thu, 04 Jan 2007 09:28:04 GMT]]></title><description><![CDATA[<p>Okay, das habe ich jetzt mal gemacht, aber das hilft nicht. <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="😞"
    /><br />
Der Fehler kommt trotzdem.</p>
<p>... oh, ich hab das Abschicken vergessen. 10 Minuten suchen später:<br />
Ich öffne das Recordset jetzt erst, wenn alle anderen Daten geladen sind, nun kommt der Fehler nicht mehr.</p>
<p>Jetzt brauchen die 800 Zeilen gut 1 Sekunde, damit kann ich erstmal wieder leben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Vielen Dank Martin. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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>PS: Falls du weißt, was der komische Fehler war, würde ich das trotzdem gerne wissen. <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="🙂"
    /><br />
PPS: Ich bin auch wieder von der virtuellen Liste weg, da ich dann das CSortListCtrl nicht mehr nutzen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202459</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 04 Jan 2007 09:28:04 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Thu, 04 Jan 2007 09:39:16 GMT]]></title><description><![CDATA[<p>Zu der Fehlermeldung: Kann es sein, dass Du mehere Queries zur gleichen Zeit offen hast?<br />
Zum Sortieren: Nun das geht auch. Allerdings musst Du dann selber Deine Daten in Deinem Bereich sortieren. Ein Invalidate genügt dann. Ich verwende eine eigene Klasse für solche Datenbankzugriffe die ich auf ein virtuelles CListCtrl abbilde. Der Durchsatz ist gigantisch. Selbst so 1Mio Datensätze sind leicht und locker verarbeitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202467</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 04 Jan 2007 09:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Thu, 04 Jan 2007 10:05:31 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Zu der Fehlermeldung: Kann es sein, dass Du mehere Queries zur gleichen Zeit offen hast?</p>
</blockquote>
<p>Ja, aber auf verschiedene Tabellen... achne, die sind ja im View drin. Okay, Denkfehler meinerseits. Ich habe lange nicht mit Views gearbeitet.</p>
<blockquote>
<p>Zum Sortieren: Nun das geht auch. Allerdings musst Du dann selber Deine Daten in Deinem Bereich sortieren. Ein Invalidate genügt dann.</p>
</blockquote>
<p>Wie macht man das dann? Jedes Sortieren ein Query?<br />
Ich müsste dann &quot;nur&quot; rausfinden, nach welcher Spalte und wie rum sortiert werden soll. Das habe ich schon mal versucht und habe dann irgendwann abgebrochen. <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>
<blockquote>
<p>Ich verwende eine eigene Klasse für solche Datenbankzugriffe die ich auf ein virtuelles CListCtrl abbilde. Der Durchsatz ist gigantisch. Selbst so 1Mio Datensätze sind leicht und locker verarbeitet.</p>
</blockquote>
<p>Das klingt gut. Ich hatte mir sowas gestern auch überlegt, aber erstmal wegen dem Sortierproblem verworfen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1202496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202496</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 04 Jan 2007 10:05:31 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Fri, 05 Jan 2007 07:50:42 GMT]]></title><description><![CDATA[<p>Hast du keinen Tip zum Sortieren? Oder ist das Firmengeheimnis? <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/1203280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203280</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 05 Jan 2007 07:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to CListCtrl: Wie setzt man mit LVN_GETDISPINFO die ItemData? on Fri, 05 Jan 2007 08:07:29 GMT]]></title><description><![CDATA[<p>estartu schrieb:</p>
<blockquote>
<p>Hast du keinen Tip zum Sortieren? Oder ist das Firmengeheimnis? <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>
</blockquote>
<p>Nein! Du hast mehrere Ansätze:<br />
1. Variante: Du hast sowieso alle Daten in Deinem Speicher. Da die virtuelle Liste dies benötigt, kannst Du einfach un primitiv Deine Daten per Quicksort durchsortieren.</p>
<p>2. Varinate (Komplex): Deine Queries liefern nur IDs der Ergebnissätze (kompliziert wenn es sich um Daten aus Joins handelt). Diese IDs werden immer auch in einer eigenen temporären SQL Tabelle mitgeführt. In einem kleinen Cache werden die eigentlichen Daten bei Bedarf gelesen aus der DB. Ein Sort ist dann nichts weiter als ein umsortieren der IDs in der temporären Tabelle.<br />
Hört sich schwierig an ist aber immens flexibel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203291</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 05 Jan 2007 08:07:29 GMT</pubDate></item></channel></rss>