>There is another reason to defer resting suspicion on the SQLite library in this case. Hence my request for <i>'investigating'</i> what appears to be an <i>'anomaly'</i> as opposed to requesting a <i>'fix'</i> for a <i>'bug'</i>. I posted the the version of my C# code with the smallest footprint. I settled on this version because I suspected that there was an issue with timing i.e. the callback taking too long. With the 32-bit SQLite3.DLL, I tried TWO other approaches: 1. Pass IntPtr instead of string in the callback and retrieve the column names and values inside the callback function from the array of pointers. 2. Get a single IntPtr in the callback and retrieve the column names and values inside the callback function rfom the single pointer using offsets. Both these latter two approaches continued to raise the same exception with the 32-bit DLL and both work with the 64-bit DLL. It did not occur to me to try the 64-bit DLL since 3. I thought the 32-bit and 64- bit precompiled versions would be generated from identical code base. 4. I need to use the 32- bit version since the consuming application is 32-bit [APL](http://apl2000.com/whatisapl.php) to start with although, eventually, I can use 64-bit clients, either [this one](https://www.dyalog.com/what-is-dyalog.htm) or [this other one](http://microapl.com/apl/index.html).