<?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[SQLConfigDataSource - Problem mit sprintf]]></title><description><![CDATA[<p>... ich weiß es ist immer wieder ein leidiges thema... aber irgendwie spinnt meine sprintf - funktion...</p>
<p>ich habe folgendes aus dem forum ausprobiert..</p>
<pre><code class="language-cpp">void CreateParams(char* result,const char* DSN,const char* description, const char* FileType, const char* DBQ) 
{ 
   sprintf(result,&quot;Microsoft Access Driver (*.mdb)\0DSN=%s\0Description=%s\0FileType=%s\0DBQ=%s\0&quot;,DSN,description,FileType,DBQ); 
}

...Aufruf

CreateParams(params,&quot;Tool&quot;,&quot;Tool&quot;,&quot;Access&quot;,&quot;E:\\MEINE_PROGS\\db.mdb&quot;);

CString temp;
temp=(CString)params;

MessageBox(&quot;Test&quot;,temp,MB_OK); // hier kommt nur &quot;Microsoft Access Driver (*.mdb)&quot; zurück warum???

SQLConfigDataSource(NULL,ODBC_ADD_DSN,params,params); // funzt dann auch nicht
</code></pre>
<p>irgendwie liegt es an dem \0, aber ich brauche das um den dienst zu installieren. wenn man \n zum Bsp nimmt dann gibt er den completten string zurück, aber wie gesagt für den ODBC Dienst braucht man doch \0.<br />
Warum funzt das bei mir nicht - ich werd irre... bei allen läufts offenbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/79262/sqlconfigdatasource-problem-mit-sprintf</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 01:44:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/79262.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 09 Jul 2004 10:26:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 10:26:56 GMT]]></title><description><![CDATA[<p>... ich weiß es ist immer wieder ein leidiges thema... aber irgendwie spinnt meine sprintf - funktion...</p>
<p>ich habe folgendes aus dem forum ausprobiert..</p>
<pre><code class="language-cpp">void CreateParams(char* result,const char* DSN,const char* description, const char* FileType, const char* DBQ) 
{ 
   sprintf(result,&quot;Microsoft Access Driver (*.mdb)\0DSN=%s\0Description=%s\0FileType=%s\0DBQ=%s\0&quot;,DSN,description,FileType,DBQ); 
}

...Aufruf

CreateParams(params,&quot;Tool&quot;,&quot;Tool&quot;,&quot;Access&quot;,&quot;E:\\MEINE_PROGS\\db.mdb&quot;);

CString temp;
temp=(CString)params;

MessageBox(&quot;Test&quot;,temp,MB_OK); // hier kommt nur &quot;Microsoft Access Driver (*.mdb)&quot; zurück warum???

SQLConfigDataSource(NULL,ODBC_ADD_DSN,params,params); // funzt dann auch nicht
</code></pre>
<p>irgendwie liegt es an dem \0, aber ich brauche das um den dienst zu installieren. wenn man \n zum Bsp nimmt dann gibt er den completten string zurück, aber wie gesagt für den ODBC Dienst braucht man doch \0.<br />
Warum funzt das bei mir nicht - ich werd irre... bei allen läufts offenbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/556712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556712</guid><dc:creator><![CDATA[pinorrix]]></dc:creator><pubDate>Fri, 09 Jul 2004 10:26:56 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 10:47:07 GMT]]></title><description><![CDATA[<p>das problem leigt hier:</p>
<pre><code class="language-cpp">temp=(CString)params;
</code></pre>
<p>das macht nähmlich ein strcpy und das kopiert nur bis zum ersten \0</p>
]]></description><link>https://www.c-plusplus.net/forum/post/556726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556726</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Fri, 09 Jul 2004 10:47:07 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 11:26:23 GMT]]></title><description><![CDATA[<p>also ich habe mal das params in nen file ausgegeben... ich bekomme nur Microsoft Access Driver (*.mdb) zurück... es wird irgendwie immer nach dem \0 abgebrochen. was natürlich auch das Nichtzustandekommen des Dienstes erklärt.<br />
-&gt; ich habe das hier im Forum mal so gesehen... nur es läuft 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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/556759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556759</guid><dc:creator><![CDATA[pinorrix]]></dc:creator><pubDate>Fri, 09 Jul 2004 11:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 11:47:22 GMT]]></title><description><![CDATA[<p>zeig mal den code wie du ins file schreibst.</p>
<p>Ansonsten hab ich hier ein Beispiel einer klasse gepostet wie du so was leicht und komfortabe´l machen machen kannst: <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=76990" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=76990</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/556781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556781</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Fri, 09 Jul 2004 11:47:22 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 12:33:08 GMT]]></title><description><![CDATA[<p>gehört zwar nicht in die MFC - aber mal zum schnellen schauen, find ich ganz cool ohne großen aufwand zu treiben...</p>
<pre><code class="language-cpp">ofstream out;
out.open(&quot;out.txt&quot;);
out&lt;&lt;params;// jetzt sag nicht hier wird auch nur bis \0 geschrieben
</code></pre>
<p>ansonsten habe ich mir deine klasse angeschaut bevor ich sie ausprobiere möchte ich sie verstehen...<br />
also das eigentliche zusammenfügen passiert ja hier</p>
<pre><code class="language-cpp">for(int n=0;n&lt;GetSize();n++) 
{ 
  strcpy(ptr,GetAt(n));      // kopieren des CStrings nach ptr
  ptr+=GetAt(n).GetLength(); // wird hier eine Position gesetzt???
  *ptr=0;++ptr;              // wird hier an die akt. position 0 geschrieben?? und position um 1 hochgezählt???
} 

*ptr = 0; 
return m_buffer;
</code></pre>
<p>vielleicht kannst du ja mal kurz was dazu schreiben... vielen dank erst mal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/556840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556840</guid><dc:creator><![CDATA[pinorrix]]></dc:creator><pubDate>Fri, 09 Jul 2004 12:33:08 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 12:45:55 GMT]]></title><description><![CDATA[<blockquote>
<p>ofstream out;<br />
out.open(&quot;out.txt&quot;);<br />
out&lt;&lt;params;// jetzt sag nicht hier wird auch nur bis \0 geschrieben</p>
</blockquote>
<p>doch sag ich *g* <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>hmm.. der code ist doch kommentiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code class="language-cpp">char *ptr = m_buffer;  // speicher den buffer-anfang in ne lokal variable
for(int n=0;n&lt;GetSize();n++) // mach das für jeder CStringArray-Element
{ 
    strcpy(ptr,GetAt(n)); // kopiere das element in den buffer (an possition ptr)
    ptr+=GetAt(n).GetLength(); // incrementiere den write-pointer um die string länge
    *ptr=0;++ptr; // schreibe ne 0 ans ende des strings und incrementiere 
} 
*ptr=0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/556854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/556854</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Fri, 09 Jul 2004 12:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Fri, 09 Jul 2004 20:11:17 GMT]]></title><description><![CDATA[<p>danke es funzt jetzt sehr gut - die blöde 0 hat mich noch in den wahnsinn getrieben, obwohl ich immernoch nicht glaube, dass das mit dem sprintf() funzen sollte.<br />
kommt sowas mit mehreren \0 in einem string eigentlich öfters vor???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/557135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/557135</guid><dc:creator><![CDATA[pinorrix]]></dc:creator><pubDate>Fri, 09 Jul 2004 20:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to SQLConfigDataSource - Problem mit sprintf on Sat, 10 Jul 2004 20:56:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>das kommt in der Tat öfter vor, so daß es gut ist, wenn du jetzt diesen Fall behandeln kannst. Ein paar Beispiele:</p>
<p>GetLogicalDriveStrings gibt im Argument lpBuffer eine solche Liste zurück:</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getlogicaldrivestrings.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getlogicaldrivestrings.asp</a></p>
<p>SHFileOperation:</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shfileoperation.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shfileoperation.asp</a></p>
<p>kann in den Argumenten pFrom und pTo der SHFILEOPSTRUCT:</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/shfileopstruct.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/shfileopstruct.asp</a></p>
<p>eine so abgetrennte Liste von Dateien übergeben werden usw...es ist also durchaus angebracht, sich mit der &quot;Technik&quot;, die nötig ist, solche Listen zu trennen bzw. zu erzeugen, zu befassen <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>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/557812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/557812</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Sat, 10 Jul 2004 20:56:06 GMT</pubDate></item></channel></rss>