<?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" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[RDOCURS - Paul Waldman]]></title><description><![CDATA[RDOCURS - Paul Waldman]]></description><link>https://pwaldman.com/</link><image><url>https://pwaldman.com/favicon.png</url><title>RDOCURS - Paul Waldman</title><link>https://pwaldman.com/</link></image><generator>Ghost 1.25</generator><lastBuildDate>Mon, 02 Feb 2026 04:09:26 GMT</lastBuildDate><atom:link href="https://pwaldman.com/tag/rdocurs/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Unable to load MSRDO20.dll or RDOCURS.dll in VBA or VB6 applications]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Migrating legacy applications written VBA or VB 6.0 to modern operating systems can frequently cause a headache.</p>
<h3 id="symptoms">Symptoms</h3>
<p>I ran into one such instance with a FactoryTalk View SE Application that used VBA to connect to a SQL database.  Data Access Objects (DAO) and ODBCDirect was used to create</p></div>]]></description><link>https://pwaldman.com/unable-to-load-msrdo20-dll-or-rdocurs-dll/</link><guid isPermaLink="false">5b95a2cb2ce2ad4c30dd488a</guid><category><![CDATA[FactoryTalk View SE]]></category><category><![CDATA[VBA]]></category><category><![CDATA[VB6]]></category><category><![CDATA[MSRDO20]]></category><category><![CDATA[RDOCURS]]></category><category><![CDATA[Server 2008 R2]]></category><dc:creator><![CDATA[Paul Waldman]]></dc:creator><pubDate>Fri, 23 Oct 2015 02:28:00 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Migrating legacy applications written VBA or VB 6.0 to modern operating systems can frequently cause a headache.</p>
<h3 id="symptoms">Symptoms</h3>
<p>I ran into one such instance with a FactoryTalk View SE Application that used VBA to connect to a SQL database.  Data Access Objects (DAO) and ODBCDirect was used to create the ODBC connection and iterate over a Batch Client Cursor record set.  The old application was running on Windows Server 2003 and I was porting it to Windows Server 2012 R2.</p>
<p>The following code was used:</p>
<pre><code class="language-prettyprint">    Set ODBCWorkSpace = CreateWorkspace(&quot;NewODBCWorkspace&quot;, &quot;SQLUser&quot;,&quot;passw0rd!&quot;,dbUseODBC)
    ODBCWorkSpace.DefaultCursorDriver = dbUseClientBatchCursor

    strDBConn = &quot;ODBC;Database = dbName;UID=SQLUser;PWD=passw0rd!;DSN=ODBCDSN&quot;
    Set RecipeConn = ODBCWorkSpace.OpenConnection(&quot;&quot;, dbDriverNoPrompt, False, strDBConn)
    ODBCWorkSpace.DefaultCursorDriver = dbUseClientBatchCursor

    strSQL = &quot;select * from Table&quot;

    Set rstQuery = RecipeConn.OpenRecordset(strSQL, dbOpenDynamic, 0, dbOptimisticBatch)
</code></pre>
<p>When running it I received the following error:<br>
<img src="https://pwaldman.com/content/images/2015/10/Cannot_Load_DLL_MSRDO20_DLL.png" alt="Cannot load DLL: MSRDO20.DLL"><br>
This was due to not having Data Access Objects installed on the 2012 R2 server.</p>
<p>The next errors are below, they were caused by not having the appropriate DLL for the Batch Client cursor.</p>
<p><img src="https://pwaldman.com/content/images/2015/10/Failed_to_load_RDOCURS_DLL-1.png" alt="Failed to load RDOCURS.DLL"></p>
<p><img src="https://pwaldman.com/content/images/2015/10/Run-time_Error_3672_Failed_to_load_RDOCURS_DLL-2.png" alt="Run-time error '3672' Failed to load RDOCURS.DLL"></p>
<h3 id="resolution">Resolution</h3>
<ol>
<li>Download Service Pack 6 for Visual Basic 6.0 (Vs6sp6.exe)<br>
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=9183"> Service Pack 6 for Visual Basic 6.0</a></li>
<li>Run Vs6sp6.exe and extract the files</li>
<li>Open <code>msrdo20.cab</code>, it contains the following files: <code>MSRDO20.DLL</code>, <code>MSRDO20.INF</code>, and <code>RDOCURS.DLL</code>.  Extract all three files and copy them to the <code>C:\Windows\Sys64WOW\</code> directory.</li>
<li>Open an elevated command prompt, navigate to C:\Windows\Sys64WOW, and register <code>MSRDO20.DLL</code>. The <code>RDOCURS.DLL</code> does not need to be registered.</li>
</ol>
<pre><code class="language-prettyprint">    C:\Windows\System32&gt; cd C:\Windows\Sys64WOW
    C:\Windows\Sys64WOW&gt; regsvr32 MSRDO20.DLL 
</code></pre>
</div>]]></content:encoded></item></channel></rss>