Atualmente no driver ODBC Firebird, os cursores do tipo “Dynamic” e “Keyset” são convertidos para cursores “Static”. Pois não é possível atualizar conjuntos (sets).
Para melhor performance, use cursores “ForwardOnly”.
Os operadores de leitura: (SQLFetch, SQLExtendedFetch, SQLScrollFetch), use SQL_ROWSET_SIZE e SQL_ATTR_ROW_ARRAY_SIZE.
Para uma melhor performance quando usar campos do tipo blob, use o operador SQLBindParameter (independente do tamanho do campo blob), pois será muito mais rápido que usar SQLPutData/SQLGetData.
Para maiores detalhes de como fazer isso e para outros tópicos avançados, por favor, olhe nos exemplos.