ALL,
ret = SQLForeignKeys( stmt_fk, NULL, 0, NULL, 0, NULL, 0, catalogName, SQL_NTS, schemaName, SQL_NTS, tableName, SQL_NTS );
if( ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO )
{
// error handling
}
bool fkFound = false;
for( ret = SQLFetch( stmt_fk ); ( ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO ) && ret != SQL_NO_DATA; ret = SQLFetch( stmt_fk ) )
{
fkFound = true;
}
if( ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO && ret != SQL_NO_DATA )
{
// error handling
}
else if( fkFound )
{
ret = SQLSetPos( stmt_fk, 0, SQL_POSITION, SQL_LOCK_NO_CHANGE );
if( ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO )
{
}
else
{
// row processing
}
Здесь вызов SQLSetPos () возвращает ошибку «Недопустимое состояние курсора».API-интерфейс ODBC не имеет функции для сброса дескриптора оператора и установки курсора на запись 1 в наборе записей, поэтому я предполагаю, что должен использовать этот, но он не работает.
Как это исправить?Или, может быть, есть альтернативный способ делать то, что я хочу?
TIA !!