conjunto de registros: Adicionando, atualizando e excluindo registros (ODBC)
Este tópico se aplica a classes MFC ODBC.
Observação: |
---|
Agora você pode adicionar registros em massa com mais eficiência.Para obter mais informações, consulte conjunto de registros: Adicionando registros em massa (ODBC). |
Observação: |
---|
Este tópico se aplica aos objetos derivados CRecordset em qual linha em massa a busca não foi implementada. Se você estiver usando buscar a linha em massa, consulte conjunto de registros: Buscando os registros em massa (ODBC). |
Instantâneos atualizáveis e dynasets permitem que você adicione, edite (atualização) e excluir registros.Este tópico explica:
Como determinar se seu conjunto de registros é atualizável.
Como adicionar um novo registro.
Como edição um registro existente.
Como excluir um registro.
Para obter mais informações sobre como as atualizações são realizadas e como as atualizações aparecem a outros usuários, consulte conjunto de registros: Como Recordsets atualização de registros (ODBC).Normalmente, quando você adicionar, edição ou excluir um registro, o conjunto de registros muda a fonte de dados imediatamente.Em vez disso, você pode lote grupos de atualizações relacionados em transações.Se uma transação estiver em andamento, a atualização não se torna final até que você confirme a transação.Isso permite que você retomar ou reverter as alterações.Para obter informações sobre transações, consulte Transação (ODBC).
A tabela a seguir resume as opções disponível para conjuntos de registros com características de atualização diferente.
Leitura conjunto de registros / atualização opções
Type (Tipo) |
Read |
edição registro |
Excluir registro |
Adicionar novo (acrescentar) |
---|---|---|---|---|
Somente leitura |
Y |
N |
N |
N |
Acrescentar somente |
Y |
N |
N |
Y |
Totalmente atualizável |
Y |
Y |
Y |
Y |
Determinando conjunto de registros Your se é updateable
Um objeto de conjunto de registros é atualizável se a fonte de dados é atualizável e você abriu o conjunto de registros sistema autônomo atualizável.Seu atualizabilidade também depende da demonstrativo SQL usar, os recursos do seu driver de ODBC, e se a biblioteca de cursores ODBC está na memória.Não é possível atualização uma fonte de dados ou conjunto de registros somente leitura.
Para determinar se seu conjunto de registros é atualizável
telefonar CanUpdatefunção de membro .
CanUpdate Retorna um valor diferente de zero se o conjunto de registros é atualizável.
Por padrão, os conjuntos de registros são totalmente atualizáveis (você pode executar AddNew, edição, and Excluir operações).Mas você também pode usar o appendOnly opção para em em aberto conjuntos de registros pode ser atualizados.Um conjunto de registros aberto dessa maneira permite apenas a adição de novos registros com AddNew. Não é possível edição ou excluir registros existentes.Você pode testar se um conjunto de registros é em aberto somente para acrescentar, chamando o CanAppendfunção de membro .CanAppend Retorna um valor diferente de zero se o conjunto de registros é totalmente atualizável ou em aberto somente para acrescentar.
O código a seguir mostra como você pode usar CanUpdate para um objeto conjunto de registros chamado rsStudentSet:
if( !rsStudentSet.Open( ) )
return FALSE;
if( !rsStudentSet.CanUpdate( ) )
{
AfxMessageBox( "Unable to update the Student recordset." );
return;
}
Cuidado: |
---|
Quando você se prepara para atualização um conjunto de registros chamando Atualização, têm cuidado que seu conjunto de registros inclui todas as colunas que compõem a chave primária da tabela (ou todas as colunas de qualquer índice exclusivo na tabela).Em alguns casos, a estrutura pode usar somente as colunas selecionadas no seu conjunto de registros para identificar qual registre na sua tabela atualização.Sem todas as colunas necessárias, vários registros podem ser atualizados na tabela, possivelmente danificar a integridade referencial da tabela.Nesse caso, a estrutura emite exceções quando você telefonar Atualização. |
Adicionar um registro a um conjunto de registros
Você pode adicionar novos registros a um conjunto de registros se sua CanAppendfunção de membro retorna um valor diferente de zero.
Para adicionar um novo registro a um conjunto de registros
Verifique se que o conjunto de registros é appendable.
telefonar AddNewfunção de membro .
AddNew prepara o conjunto de registros para atuar sistema autônomo um buffer de edição. Todos sistema autônomo membros de dados de campo são conjunto para de especial valor nulo e marcado sistema autônomo inalterado para que somente alterado (sujos) valores são gravados para a fonte de dados quando você chamar Atualização.
Defina os valores de membros de dados de campo do novo registro.
atribuir valores para os membros de dados do campo.Aqueles que não atribua não são gravadas na fonte de dados.
telefonar Atualizaçãofunção de membro .
Atualização conclui a adição, escrevendo o novo registro na fonte de dados.Para obter informações sobre como acontece se você não conseguir telefonar Atualização, see conjunto de registros: Como Recordsets atualização de registros (ODBC).
Para obter informações sobre como adicionar registros funciona e sobre quando os registros adicionados são visíveis no seu conjunto de registros, consulte Recordset: Como AddNew, edição e excluir trabalho (ODBC).
O exemplo a seguir mostra como adicionar um novo registro:
if( !rsStudent.Open( ) )
return FALSE;
if( !rsStudent.CanAppend( ) )
return FALSE; // no field values were set
rsStudent.AddNew( );
rsStudent.m_strName = strName;
rsStudent.m_strCity = strCity;
rsStudent.m_strStreet = strStreet;
if( !rsStudent.Update( ) )
{
AfxMessageBox( "Record not added; no field values were set." );
return FALSE;
}
Dica: |
---|
Para cancelar um AddNew ou edição chamar, basta fazer outra telefonar para AddNew ou edição or telefonar Mover with the AFX_MOVE_REFRESH parâmetro.Membros de dados são redefinidos para seus valores anteriores e você está ainda em edição or Adicionar modo. |
Editar um registro em um conjunto de registros
Você pode edição registros existentes, se CanUpdatefunção de membro retorna um valor diferente de zero.
Para edição um registro existente em um conjunto de registros
Verifique se que o conjunto de registros é atualizável.
Role para o registro que deseja atualizar.
Ligue para ediçãofunção de membro .
Editar prepara o conjunto de registros para atuar sistema autônomo um buffer de edição.Todos os membros de dados de campo são marcados para que o conjunto de registros pode saber mais tarde se eles foram alterados.Os novos valores para os dados de campo alterado membros são gravados os dados de origem quando você telefonar Atualização.
Defina os valores de membros de dados de campo do novo registro.
atribuir valores para os membros de dados do campo.Aqueles que não atribua valores permanecerão inalterados.
telefonar Atualizaçãofunção de membro .
Atualização conclui a edição ao escrever registro alterado para a fonte de dados.Para obter informações sobre como acontece se você não conseguir telefonar Atualização, see conjunto de registros: Como Recordsets atualização de registros (ODBC).
Depois de edição um registro, o registro editado permanecerá no registro corrente.
O exemplo a seguir mostra um edição operação.Ele supõe que o usuário tenha sido movido para um registro que deseja edição.
rsStudent.Edit( );
rsStudent.m_strStreet = strNewStreet;
rsStudent.m_strCity = strNewCity;
rsStudent.m_strState = strNewState;
rsStudent.m_strPostalCode = strNewPostalCode;
if( !rsStudent.Update( ) )
{
AfxMessageBox( "Record not updated; no field values were set." );
return FALSE;
}
Dica: |
---|
Para cancelar um AddNew ou edição chamar, basta fazer outra telefonar para AddNew ou edição or telefonar Mover with the AFX_MOVE_REFRESH parâmetro.Membros de dados são redefinidos para seus valores anteriores e você está ainda em edição or Adicionar modo. |
Excluir um registro de um conjunto de registros
Você pode excluir registros, se CanUpdatefunção de membro retorna um valor diferente de zero.
Para excluir um registro
Verifique se que o conjunto de registros é atualizável.
Role para o registro que deseja atualizar.
Ligue para Excluirfunção de membro .
Excluir marca imediatamente o registro sistema autônomo excluído, tanto no conjunto de registros na fonte de dados.
Ao contrário de AddNew e edição, Excluir tem nenhum correspondente Atualização telefonar.
Rolar para outro registro.
Observação: Ao mover através dos conjuntos de registros, registros excluídos não podem ser ignorados.Para obter mais informações, consulte o Éexcluídofunção de membro .
O exemplo a seguir mostra um Excluir operação.Ele pressupõe que o usuário foi movido para um registro que o usuário deseja excluir.Depois de Excluir é chamado, é importante mover para um novo registro.
rsStudent.Delete( );
rsStudent.MoveNext( );
Para obter mais informações sobre os efeitos do AddNew, edição, and Excluir funções de membro, consulte conjunto de registros: Como Recordsets atualização de registros (ODBC).