Se você estiver consultando todos os registros em uma única consulta e puxando-os de volta de uma só vez, não há necessidade. Tudo está envolvido em uma transação implícita. Ou seja, mesmo que você recupere um milhão de registros, e mesmo que outros processos estejam alterando os registros, você verá como eram todos os um milhão de registros no mesmo momento.
As únicas vezes que você realmente precisaria de uma transação (e, muitas vezes, uma dica de bloqueio específica) em um processo somente leitura são:
- Você lê os registros "peça-refeição" e não precisa de mais nada para alterar os valores enquanto você embora. [Como um conjunto de registros conectado no ADO pelo qual você passa o cursor.]
- Você lê alguns dados, faz alguns cálculos e depois lê alguns dados relacionados, mas supondo que nada mudou nesse meio tempo.
Resumindo, você precisa de transações quando deseja que outros processos parem de interferir em seus dados entre instruções SQL.