Artigo: 818518 - Última revisão: quinta-feira, 17 de Maio de 2007 - Revisão: 1.2

CORRECÇÃO: 'não é possível guardar' erro ocorre quando tenta guardar um conjunto de registos ADO para um ficheiro

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Quando tenta guardar um conjunto de registos ADO para um ficheiro que foi criado por outro utilizador do sistema, poderá receber a seguinte mensagem de erro:
Run-time error '-2147286781 (80030103) ':
Não é possível guardar.
Recebe esta mensagem de erro se a aplicação está numa pasta só de leitura, mesmo se o ficheiro de conjunto de registos for uma pasta que tenha permissões de escrita para ambos os utilizadores.

Causa

Quando tenta guardar o conjunto de registos para um ficheiro já existe, o objecto de conjunto de registos cria um ficheiro temporário na pasta da aplicação. Esta pasta é uma pasta só de leitura. Por conseguinte, o segundo utilizador não consegue substituir o ficheiro de origem.

Resolução

Este problema foi resolvido no Microsoft Data Access Components (MDAC) 2.8. No MDAC 2.8, o ADODB conjunto de registos cria o ficheiro temporário na mesma pasta que o ficheiro de destino que foi utilizado para guardar o conjunto de registos.

Para transferir o Microsoft Data Access Components (MDAC) 2.8, visite o seguinte Web site da Microsoft:
Nota A Microsoft recomenda que teste a aplicação com o MDAC 2.8 num ambiente de teste em primeiro lugar, para garantir que sejam teve conhecimento de quaisquer problemas de compatibilidade antes de decidir utilizar (ou actualizar para) o MDAC 2.8 versão.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo. Este erro foi corrigido no MDAC 2.8.

Mais Informação

Passos para reproduzir o comportamento

  1. Inicie o Microsoft Visual Basic 6.0.
  2. No menu ficheiro , clique em novo projecto . Na caixa de diálogo novo projecto , clique em Exe padrão . Por predefinição, é criado o Form1.
  3. No menu projecto , clique em References . Clique em Microsoft ActiveX Data Objects Library 2.7 e, em seguida, clique em OK .
  4. Adicione dois botões de comando ao formulário.
  5. Right-click Form1, click View Code, and then add the following code:
    Option Explicit
    
    Private Sub Command1_Click()
       Dim cn As New Connection
       Dim rs As New Recordset
    
       On Error GoTo ErrHandler
       cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=YourSQLServer"
       cn.Open
          
       ' Open the RecordSet
       rs.Open "SELECT * FROM CUSTOMERS", cn, adOpenDynamic, adLockPessimistic
       
       ' Persist the RecordSet
       rs.Save "C:\Documents and Settings\NonAdminUserName\My Documents\Customer.dat"
       
       Exit Sub
       
    ErrHandler:
       MsgBox "Error : " & Err.Description
    End Sub
    
    Private Sub Command2_Click()
       Dim rs As New ADODB.Recordset
       
       On Error GoTo ErrHandler:
       
       ' Read the Persisted RecordSet
       rs.Open "C:\Documents and Settings\NonAdminUserName\My Documents\Customer.dat"
       
       ' Save the RecordSet
       rs.Save "C:\Documents and Settings\NonAdminUserName\My Documents\Customer.dat"
       
       Exit Sub
    
    ErrHandler:
       MsgBox "Error Number: " & Err.Number
       MsgBox "Error Description: " & Err.Description
    End Sub
    
    Private Sub Form_Load()
       Command1.Caption = "Persist RecordSet"
       Command2.Caption = "Reload Data"
    End Sub
    
  6. Substitua o nome do SQL Server "YourSQLServer" na cadeia de ligação.
  7. Guarde o projecto na pasta C:\Programas\Microsoft Files\Test .
  8. No menu Run , clique em Iniciar .
  9. Clique em Conjunto de registos Persist e clique em Voltar a carregar dados . Erro não ocorre.
  10. Iniciar sessão no computador como um utilizador não administrador (por predefinição, os administradores não não não têm acesso escrita Files\ pasta pasta).
  11. Execute novamente o projecto. Receberá a mensagem de erro é descrita na secção "Sintomas".

Referências

Para mais informações sobre o Microsoft Data Access Technologies, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/data (http://www.microsoft.com/data)

A informação contida neste artigo aplica-se a:
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft Data Access Components
Palavras-chave: 
kbmt kbprogramming kbdataobject kbfix KB818518 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 818518  (http://support.microsoft.com/kb/818518/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.