Hoje vamos falar sobre alguns métodos do objeto Recordset.
1. O método AddNew cria novos registros que podem atualizar o objeto Recordset.
recordset.AddNew FieldList, Valores
FieldList Opcional. Um único nome, um conjunto de nomes ou a posição ordinal do campo no novo registro.
Os valores são opcionais. Um único ou conjunto de valores para um campo no novo registro. Se Fields for um array, Values também deverá ser um array com o mesmo número de membros, caso contrário ocorrerá um erro. A ordem dos nomes dos campos deve corresponder à ordem dos valores dos campos em cada array.
Nós geralmente somos
rs.addnew
rs("xx")=xx
rs("xx")=xx
rs.atualização
Observe que no modo de atualização imediata (o provedor grava alterações na fonte de dados subjacente imediatamente quando o método Update é chamado), chamar o método AddNew sem parâmetros define a propriedade EditMode como adEditAdd. O provedor armazena em cache quaisquer alterações nos valores dos campos localmente. Chame o método Update para passar o novo registro ao banco de dados e redefinir a propriedade EditMode para adEditNone. Se os parâmetros Campos e Valores forem passados, o ADO passa imediatamente o novo registro para o banco de dados (sem chamar Update) e o valor da propriedade EditMode não muda (adEditNone).
Você pode perguntar qual é a diferença entre usar o método AddNew do ADO em ASP e usar diretamente a instrução "Inserir em..."? Qual caminho é melhor? Resposta: O método AddNew do ADO encapsula apenas a instrução "Inserir em" Portanto, ao operar em uma grande quantidade de dados, o uso direto de instruções SQL irá acelerar bastante o acesso aos dados porque reduz o tempo de "tradução" do ADO.
2. O método Delete exclui o registro ou grupo de registros atual.
recordset.Delete AffectRecords
AffectRecords O valor AffectEnum determina o número de registros afetados pelo método Delete. Esse valor pode ser uma das seguintes constantes.
AdAffectCurrent Padrão. Exclua apenas o registro atual.
AdAffectGroup exclui registros que atendem à configuração atual da propriedade Filtro. Para utilizar esta opção, a propriedade Filter deve ser definida como uma das constantes predefinidas válidas.
adAffectAll exclui todos os registros.
adAffectAllChapters Exclua todos os registros do subconjunto.
Usar o modo de atualização imediata causará a exclusão imediata do banco de dados, caso contrário, o registro será marcado para exclusão do cache e a exclusão real ocorrerá quando o método Update for chamado.
3. O método Update salva todas as alterações feitas no registro atual do objeto Recordset.
recordset.Atualizar campos, valores
Os campos são opcionais. Tipo de variante, representando um único nome ou matriz de tipo de variante, representando a posição do nome e do número de série do campo (um ou mais) que precisa ser modificado.
Os valores são opcionais. Tipo variante, representando um valor único ou matriz de tipo variante, representando os valores do campo (único ou múltiplo) no novo registro.
Se desejar cancelar quaisquer alterações feitas no registro atual ou descartar registros recém-adicionados, você deverá chamar o método CancelUpdate.
4. Método CancelUpdate
conjunto de registros.CancelUpdate
Use o método CancelUpdate para cancelar quaisquer alterações no registro atual ou descartar registros recém-adicionados. As alterações no registro atual ou em novos registros não podem ser desfeitas após a chamada do método Update. Se um novo registro for adicionado quando o método CancelUpdate for chamado, o registro atual antes de AddNew ser chamado se tornará o registro atual novamente. Se o registro atual não tiver sido alterado ou um novo registro tiver sido adicionado, chamar o método CancelUpdate gerará um erro.
5. O método Find pesquisa no Recordset os registros que atendem aos critérios especificados. Se os critérios forem atendidos, a posição do conjunto de registros será definida no registro encontrado; caso contrário, a posição será definida no final do conjunto de registros.
Encontrar (critérios, SkipRows, searchDirection, início)
critérios Uma string contendo instruções que especificam nomes de colunas, operadores de comparação e valores para a pesquisa.
SkipRows Opcional, valor inteiro longo, cujo valor padrão é zero, que especifica o deslocamento da linha atual ou marcador inicial para iniciar a pesquisa.
searchDirection Opcional Valor SearchDirectionEnum que especifica se a pesquisa deve começar na linha atual ou na próxima linha válida. Seu valor pode ser adSearchForward ou
adSearchBackward. Se a pesquisa termina no início ou no final do conjunto de registros é determinado pelo valor searchDirection.
start Opcional, marcador variante, usado como posição inicial da pesquisa.
Os critérios "Operador de comparação" podem ser ">" (maior que), "<" (menor que), "=" (igual a), ">=" (maior ou igual a), "<=" (menor que ou igual a), " <>"
(diferente de) ou "like" (correspondência de padrão). Os valores nos critérios podem ser strings, números de ponto flutuante ou datas. Os valores da string são delimitados por aspas simples (por exemplo, "state = 'WA'").
Os valores de data são delimitados por "#" (símbolos numéricos) (por exemplo, "data_inicial > #22/07/97#").
Deve-se observar que find não oferece suporte a vários campos. Mas isso pode ser conseguido usando filtros. "name='abc'"AND "city='sh'" não é permitido
6. O método Move move a posição do registro atual no objeto Recordset
conjunto de registros.Move NumRecords, Iniciar
NumRecords Uma expressão inteira longa assinada que especifica o número de registros a serem movidos da posição de registro atual.
Início opcional, tipo string ou variante, usado para calcular marcadores. Também pode ser um dos seguintes valores:
AdBookmarkCurrent Padrão. Comece a partir do registro atual.
AdBookmarkFirst começa com o primeiro registro.
AdBookmarkLast começa no último registro.
As coisas a serem observadas são:
(1) Se o parâmetro NumRecords for maior que zero, a posição atual do registro avançará (em direção ao final do conjunto de registros). Se NumRecords for menor que zero, a posição do registro atual será movida para trás (em direção ao início do conjunto de registros).
(2) Chamar o método Move de um objeto Recordset vazio gerará um erro.
(3) Se a chamada Move mover a posição do registro atual para antes do primeiro registro, o ADO colocará o registro atual antes do primeiro registro do conjunto de registros (BOF é True). Tentar retroceder quando a propriedade BOF já for True gerará um erro se a chamada Move mover a posição do registro atual após o registro final, o ADO colocará o registro atual após o registro final do conjunto de registros (EOF é True). Tentar avançar quando o atributo EOF já for True gerará um erro.
7. Os métodos MoveFirst, MoveLast, MoveNext e MovePrevious movem-se para o primeiro, último, próximo ou anterior registro no objeto Recordset especificado e tornam o registro o registro atual.
conjunto de registros.{MoveFirst |
As coisas a serem observadas são:
(1) Use o método MoveNext para mover o registro atual um registro para frente (em direção à parte inferior do conjunto de registros). Se o último registro for o registro atual e o método MoveNext for chamado, o ADO definirá o registro atual após o registro final do Recordset (EOF é True). Tentar avançar quando o atributo EOF já for True gerará um erro.
(2) Use o método MovePrevious para mover a posição do registro atual para trás em um registro (em direção ao topo do conjunto de registros). O objeto Recordset deve suportar o movimento do cursor para trás, caso contrário a chamada do método gerará um erro. Se o primeiro registro for o registro atual e o método MovePrevious for chamado, o ADO definirá o registro atual antes do primeiro registro do Recordset (BOF é True). Quando o atributo BOF for True, retroceder gerará um erro.
8. O método Clone cria um objeto Recordset duplicado que é idêntico ao objeto Recordset existente. Opcionalmente, especifique que a réplica é somente leitura.
Definir rstDuplicate = rstOriginal.Clone
Variável de objeto rstDuplicate que identifica o objeto Recordset duplicado que está sendo criado.
A variável de objeto rstOriginal identifica o objeto Recordset a ser copiado.
Use o método Clone para criar diversas cópias de um objeto Recordset, o que é útil se você deseja manter vários registros atuais em um determinado grupo de registros. Usar o método Clone é muito mais eficiente do que criar e abrir um novo objeto Recordset com a mesma definição da definição inicial.
Isso quer dizer
rs.open exec,conn,1,1
rs2.open exec,conn,1,1
Deveria ser reescrito assim
rs.open exec,conn,1,1
rs2=rs.clone
deve-se observar que:
(1) O registro atual da cópia recém-criada será definido como o primeiro registro.
(2) Fechar o Recordset original não fecha sua cópia, e fechar uma cópia não fecha o Recordset original ou qualquer outra cópia.
9. O método Close fecha o objeto aberto e quaisquer objetos relacionados.
objeto.Fechar
As coisas a serem observadas são:
(1) Use o método Close para fechar o objeto Recordset para liberar todos os recursos do sistema associados. Fechar um objeto não o exclui da memória; você pode alterar suas configurações de propriedade e
abri-lo novamente mais tarde. Para remover completamente o objeto da memória, defina a variável do objeto como Nothing.
(2) Se você estiver editando no modo de atualização imediata, chamar o método Close gerará um erro e você deve primeiro chamar o método Update ou CancelUpdate.
10. Método aberto, por que dizemos isso por último? Como os métodos de atributos anteriores não são claros, não entenderemos o parâmetro CursorType.
conjunto de registros.Open Source, ActiveConnection, CursorType, LockType, Opções
Objetos Recordset podem se conectar a objetos Command por meio da propriedade Source. O parâmetro Source pode ser um nome de objeto Command, um comando SQL, um nome de tabela de dados especificado ou um procedimento armazenado. Se este parâmetro for omitido, o sistema utilizará a propriedade Source do objeto Recordset.
ActiveConnection
Recordset podem se conectar a objetos Connection por meio da propriedade ActiveConnection. O ActiveConnection aqui pode ser um objeto Connection ou uma sequência de parâmetros de sequência contendo informações de conexão
com o banco de dados
(ConnectionString).CursorType
O parâmetro CursorType do método Open do objeto Recordset indica com qual tipo de cursor os dados serão iniciados, incluindo adOpenForwardOnly, adOpenKeyset, adOpenDynamic e ad
OpenStatic, que são descritos a seguir:
---------- ------- ------------------------------------------- -----
Descrição
do valor constante constante-
------------------------------------------------------ ----------
adOpenForwardOnly 0 Valor padrão, inicia um cursor que só pode avançar (Apenas Avançar).
adOpenKeyset 1 inicia um cursor do tipo Keyset.
adOpenDynamic 2 inicia um cursor do tipo Dinâmico.
adOpenStatic 3 inicia um cursor do tipo estático.
-------------------------------------------------- -----------
Os tipos de cursor acima afetarão diretamente todas as propriedades e métodos do objeto Recordset. A lista a seguir explica as diferenças entre eles.
Propriedades do conjunto de registros adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
AbsolutePage Não suportado Não suportado Legível e gravável Legível e gravável
AbsolutePosition Não suportado Não suportado Legível e gravável Legível e gravável
BOF Somente leitura Somente leitura Somente leitura
CursorType Leitura-escrita Ler-escrever Ler-escrever Ler-escrever
EOF Somente leitura Ler -only Somente leitura
Filtro Ler e escrever Ler e escrever Ler e escrever Ler e escrever
LockType Ler e escrever Ler e escrever Ler e escrever Ler e escrever
PageCount Não suportado Não suportado Ler apenas Ler apenas
PageSize Ler e escrever Ler e escrever Ler e escrever Ler Write
RecordCount Não suportado Não suportado Somente leitura Somente leitura
AddNew Suportado Suportado Suportado
CancelBatch Suportado Suportado Suportado Suportado CancelUpdate Suportado
Suportado Suportado
Suportado Fechar Suportado Suportado Suportado Suportado Suportado Suportado Suportado
Eliminar Suportado Suportado Suportado Suportado Suportado Suportado Suportado
Mover Não suportado Suportado Suportado Suportado Suportado
MoveFirst Suportado Suportado Suportado Suportado
MoveLast Não suportado Suportado Suportado Suporte Suporte
MoveNext Suporte Suporte Suporte Suporte
MovePrevious Não suporta Suporte Suporte Suporte
Suporte Aberto Suporte Suporte Suporte
Atualização Suporte Suporte Suporte Suporte Suporte
UpdateBatch Suporte Suporte Suporte
------ ---------------------- ---------------------------- ---------
O parâmetro LockType do método Open do objeto Recordset indica que o tipo Lock Se este parâmetro for omitido, o sistema utilizará a propriedade LockType do objeto Recordset como valor padrão. Os parâmetros LockType incluem adLockReadOnly, adLockPrssimistic, adLockOptimistic e adLockBatchOptimistic, etc., que são descritos a seguir:
Descrição do valor constante
--------------------------- ------ --------------------------------
adLockReadOnly 1 Valor padrão, o objeto Recordset é iniciado em leitura -somente e não pode executar os métodos AddNew, Update e Delete
adLockPrssimistic 2 Quando a fonte de dados está sendo atualizada, o sistema bloqueará temporariamente as ações de outros usuários para manter a consistência dos dados.
adLockOptimistic 3 Quando a fonte de dados está sendo atualizada, o sistema não bloqueará as ações de outros usuários e outros usuários poderão adicionar, excluir e modificar dados.
adLockBatchOptimistic 4 Quando a fonte de dados está sendo atualizada, outros usuários devem alterar o atributo CursorLocation para adUdeClientBatch para adicionar, excluir ou modificar dados.
As coisas a serem observadas são:
Se a fonte de dados não retornar nenhum registro, o provedor definirá as propriedades BOF e EOF como True e não definirá a posição atual do registro. Se o tipo de cursor permitir, novos dados ainda poderão ser adicionados ao objeto Recordset vazio.