SQLGetData e cursores em bloco
SQLGetData opera em uma só coluna com uma só linha e não pode buscar uma matriz contendo dados de várias linhas. Isso acontece porque o principal uso do SQLGetData é buscar dados longos em partes, e há pouca ou nenhuma razão para fazer isso para mais de uma linha ao mesmo tempo.
Para usar SQLGetData com um cursor em bloco, um aplicativo primeiro chama SQLSetPos para posicionar o cursor em uma só linha. Ele então chama SQLGetData para uma coluna nessa linha. Esse comportamento é opcional. Para determinar se um driver é compatível com o uso de SQLGetData com cursores em bloco, um aplicativo chama SQLGetInfo com a opção SQL_GETDATA_EXTENSIONS.