Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao buscar e atualizar dados por meio de cursores do SQL Server, um aplicativo de consumidor do provedor OLE DB do SQL Server Native Client é associado pelas mesmas considerações e restrições que se aplicam a qualquer outro aplicativo cliente.
Somente as linhas nos cursores do SQL Server participam do controle de acesso a dados simultâneo. Quando o consumidor solicita um conjunto de linhas modificável, o controle de simultaneidade é controlado por DBPROP_LOCKMODE. Para modificar o nível de controle de acesso simultâneo, o consumidor define a propriedade DBPROP_LOCKMODE antes de abrir o conjunto de linhas.
Os níveis de isolamento da transação podem causar atrasos significativos no posicionamento de linha se o design do aplicativo cliente permitir que as transações permaneçam abertas por longos períodos de tempo. Por padrão, o provedor OLE DB do SQL Server Native Client usa o nível de isolamento confirmado por leitura especificado por DBPROPVAL_TI_READCOMMITTED. O provedor OLE DB do SQL Server Native Client dá suporte ao isolamento de leitura sujo quando a simultaneidade do conjunto de linhas é somente leitura. Portanto, o consumidor pode solicitar um nível mais alto de isolamento em um conjunto de linhas modificável, mas não pode solicitar nenhum nível inferior com êxito.
Modos de atualização imediatos e atrasados
No modo de atualização imediata, cada chamada para IRowsetChange::SetData causa uma viagem de ida e volta para o SQL Server. Se o consumidor fizer várias alterações em uma única linha, será mais eficiente enviar todas as alterações com uma única chamada SetData .
No modo de atualização atrasado, uma viagem de ida e volta é feita para o SQL Server para cada linha indicada nos parâmetros cRows e rghRows de IRowsetUpdate::Update.
Em ambos os modos, uma viagem de ida e volta representa uma transação distinta quando nenhum objeto de transação está aberto para o conjunto de linhas.
Quando você estiver usando IRowsetUpdate::Update, o provedor OLE DB do SQL Server Native Client tenta processar cada linha indicada. Um erro que ocorre devido a dados inválidos, comprimento ou valores de status para qualquer linha não interrompe o processamento do provedor OLE DB do SQL Server Native Client. Todas ou nenhuma das outras linhas que participam da atualização podem ser modificadas. O consumidor deve examinar a matriz prgRowStatus retornada para determinar a falha de qualquer linha específica quando o provedor OLE DB do SQL Server Native Client retorna DB_S_ERRORSOCCURRED.
Um consumidor não deve assumir que as linhas são processadas em qualquer ordem específica. Se um consumidor exigir o processamento ordenado de modificação de dados em mais de uma única linha, o consumidor deverá estabelecer essa ordem na lógica do aplicativo e abrir uma transação para colocar o processo entre eles.