A sintaxe de Rs.Open é a seguinte: rs.Open Source, ActiveConnection, CursorType, LockType Source é a instrução sql, ActiveConnection é a conexão com o banco de dados, CursorType é o cursor e LockType é o tipo de bloqueio de dados.
Costumo desenvolver asp, mas não tenho certeza dos detalhes. Aqui está uma breve introdução.
Normalmente
Para ler dados, use rs.open sql,conn,1,1
Modificar dados: rs.open sql,conn,1,3
Excluir dados: use diretamente conn.execute("delete * from new where id=1").
A sintaxe de Rs.Open é a seguinte: rs.Open Source,ActiveConnection,CursorType,LockType
Source é a instrução sql, ActiveConnection é a conexão com o banco de dados, CursorType é o cursor e LockType é o tipo de bloqueio de dados.
CursorType
Descrição constante
adOpenForwardOnly(valor 0) (valor padrão) abre um cursor somente de avanço.
adOpenKeyset (valor 1) abre um cursor do tipo conjunto de chaves.
adOpenDynamic (valor 2) abre um cursor de tipo dinâmico.
adOpenStatic (valor 3) abre um cursor de tipo estático.
Tipo de bloqueio
Descrição constante
adLockReadOnly (valor 1) (padrão) Somente leitura – os dados não podem ser alterados.
adLockPessimistic (valor 2) Bloqueio conservador (um por um) — O provedor faz o trabalho necessário para garantir a edição bem-sucedida dos registros, normalmente bloqueando os registros da fonte de dados imediatamente após a edição.
adLockOptimistic (valor 3) Bloqueio aberto (um por um) - O provedor usa bloqueio aberto e bloqueia registros apenas quando o método Update é chamado.
adLockBatchOptimistic (valor 4) Atualização em lote aberto - usada no modo de atualização em lote (em oposição ao modo de atualização imediata).
CursorType
0 Somente cursor de avanço, só pode navegar pelos registros para frente, não suporta paginação, Recordset, BookMark
1 cursor de conjunto de teclas, as modificações feitas por outros usuários nos registros serão refletidas no conjunto de registros, mas os registros adicionados ou excluídos por outros usuários não serão refletidos no conjunto de registros. Paginação de suporte, conjunto de registros, BookMark
2 Os cursores dinâmicos possuem as funções mais poderosas, mas também consomem mais recursos. Modificações feitas pelos usuários nos registros, adição ou exclusão de registros serão refletidas no conjunto de registros. Suporta navegação completa.
3. Um cursor estático é apenas um instantâneo dos dados. As modificações feitas pelo usuário nos registros, adicionando ou excluindo registros, não serão refletidas no conjunto de registros. Suporta avançar ou retroceder
Tipo de bloqueio
LockType é o tipo de bloqueio do conjunto de registros e seu valor é:
1 Tipo de bloqueio, padrão, somente leitura, nenhuma modificação pode ser feita
2 Bloqueie os registros imediatamente durante a edição, a maneira mais segura
3 O conjunto de registros é bloqueado somente quando o método Update é chamado e outras operações anteriores ainda podem alterar, inserir e excluir o registro atual.
4 Os registros não são bloqueados durante a edição e alterações, inserções e exclusões
rs.open sql,conn,3,2
Esses dois são cursores, suas funções específicas são:
RS.OPEN SQL,CONN,A,B
UM:
ADOPENFORWARDONLY(=0)
Somente leitura e o registro de dados atual só pode ser movido para baixo
ADOPENKEYSET(=1)
Somente leitura, o registro de dados atual pode ser movido livremente
ADOPENDINÂMICO(=2)
Legível e gravável, o registro de dados atual pode ser movido livremente
ADOPENSTÁTICO(=3)
Legíveis e graváveis, os registros de dados atuais podem ser movidos livremente, novos registros podem ser vistos
B:
ADLOCKREADONLY(=1)
O tipo de bloqueio padrão é que o conjunto de registros seja somente leitura e os registros não possam ser modificados.
ADLOCKPESSIMISTIC(=2)
Bloqueio pessimista, quando um registro é modificado, o provedor de dados tentará bloquear o registro para garantir que o registro seja editado com sucesso. Assim que a edição começa, o registro é bloqueado.
ADLOCKOPTIMISTIC(=3)
O bloqueio otimista não bloqueia o registro até que o registro atualizado seja enviado usando o método Update.
ADLOCKBATCHOPTIMISTIC(=4)
O bloqueio otimista em lote permite que vários registros sejam modificados e os registros são bloqueados somente depois que o método UpdateBatch é chamado.
Quando nenhum registro precisar ser modificado, um conjunto de registros somente leitura deverá ser usado para que o provedor não precise fazer nenhuma detecção.
Para uso geral, o bloqueio otimista é provavelmente a melhor opção, uma vez que os registros são bloqueados apenas por um curto período de tempo,
Os dados são atualizados durante esse período. Isso reduz o uso de recursos.
Para resumir:
sql,conn,1,1 significa que nenhuma atualização é permitida e geralmente é usado para operações de consulta.
sql,conn,1,3 significa que atualizações são permitidas e geralmente é usado para operações de inserção, atualização e exclusão.