SQLGetData und Blockcursor
SQLGetData arbeitet in einer einzelnen Spalte einer einzelnen Zeile und kann kein Array abrufen, das Daten aus mehreren Zeilen enthält. Dies liegt daran, dass die primäre Verwendung von SQLGetData darin besteht, lange Daten in Teilen abzurufen, und es gibt wenig oder keinen Grund, dies für mehrere Zeilen gleichzeitig zu tun.
Um SQLGetData mit einem Blockcursor zu verwenden, ruft eine Anwendung zuerst SQLSetPos auf, um den Cursor in einer einzelnen Zeile zu positionieren. Anschließend wird SQLGetData für eine Spalte in dieser Zeile aufgerufen. Dieses Verhalten ist jedoch optional. Um festzustellen, ob ein Treiber die Verwendung von SQLGetData mit Blockcursorn unterstützt, ruft eine Anwendung SQLGetInfo mit der option SQL_GETDATA_EXTENSIONS auf.