<p>I cannot understand the Oracle documentation. :-(</p>

<p>Does anybody know how to fetch multiple rows of simple data from Oracle via OCI?</p>

<p>I currently use <code>OCIDefineByPos</code> to define single variables (I only need to do this for simple integers -- <code>SQLT_INT</code>/4-byte ints) and then fetch a single row at a time with <code>OCIStmtExecute</code>/<code>OCIStmtFetch2</code>.</p>

<p>This is OK for small amounts of data but it takes around .5ms per row, so when reading a few ten thousand rows this is too slow.</p>

<p>I just don't understand the documentation for <code>OCIBindArrayOfStruct</code>. How can I fetch a few thousand rows at a time?</p>

Unless you're using
```
LPSTR_TEXTCALLBACK
```
, the tree-view control is responsible for allocating the memory, not your code, so you shouldn't change the value of the
```
pszText
```
pointer.
To change the item's text in your
```
TVN_ENDLABELEDIT
```
handler, you can use
```
TreeView_SetItem
```
, then return 0 from the handler.