ok....this is long and odd.. hang in there...<BR><BR>I am stepping through this DLL and I hit a part where I query an Oracle DB. The statement is akin to:<BR><BR>SELECT ID, RuleType, SubType, RuleXML FROM aTable WHERE RuleSummary IS NULL OR RuleSummary IN (&#039;&#039;, &#039; &#039;, &#039;.&#039;)<BR><BR>I check for EOF, then MoveFirst. At this point, I am assigning the RecordSet field values to local variables. When I mouse over objRS!RuleXML [in debug mode] a value pops up, showing the expected XML that I am looking for. If I then add a Watch for that recordset index, the value is null. Then, if I mouse over the same value as before, it shows null. It seems like whenever I touch it, assign it to a variable, add it as a watch, or debug.print it, it goes null? Now..... here is the interesting thing. I look up the dataType of that field and it is LONG - though the contents are XML. Looking at another piece of code that does something similiar, I see that the CursorType is specified. So, I change my parameters so the cursor is set to adUseKeySet, like the other block of code. The problem then stopped. I could then assing that value to a variable or print it out or watch it - no problem. Why did specifiying the cursor make a difference and why does it behave so oddly when I don&#039;t specify the cursor?