CORRECÇÃO: REPAIR_DB opção pode remover a criptografia de banco de dados do Access 2000

Traduções deste artigo Traduções deste artigo
ID do artigo: 298145 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

Se você usar a chamada de API de ODBC SQLConfigDataSource com a opção REPAIR_DB em um arquivo de banco de dados criptografado do Microsoft Access, o banco de dados for reparado corretamente, mas a criptografia é removida.

Causa

Este é um problema no Microsoft Jet Drivers do ODBC (Odbcjt32.dll) que são fornecidos com o Microsoft Data Access Components (MDAC) 2.5 Service Pack 2 e anterior.

Resolução

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft MDAC 2.5. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
293312INFO: Como obter o último MDAC 2.5 Service Pack
A versão em inglês dessa correção deve ter os seguintes atributos de arquivo ou posteriores:
   Date        Version      Size            File name      Platform
   ----------------------------------------------------------------
   12/04/2001  4.0.7412.0   270,608 bytes   Odbcjt32.dll   x86
				

Como Contornar

Para contornar esse problema, use a função CDaoWorkspace::RepairDatabase para reparar o banco de dados.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo. Esse problema foi corrigido primeiro no Microsoft MDAC 2.5 Service Pack 3.

Mais Informações

O código a seguir reproduz o problema:
void Repair(BOOL bEncrypt)
{
	CString strDBQ = "d:\\NWind.mdb", strSystemDB = "d:\\System.mdw";
	CString strAttributes;
	strAttributes += "REPAIR_DB=";
	strAttributes += strDBQ;
	if (bEncrypt)
		strAttributes += " ENCRYPT";  // This additional keyword is an optimistic try and has no effect!!
	strAttributes += "|";
	strAttributes += "SYSTEMDB=";
	strAttributes += strSystemDB;
	strAttributes += "|";
	strAttributes += "EXCLUSIVE=TRUE";
	strAttributes += "|";
	strAttributes += "|";

	// Exchange pipes against nulls so the command is interpreted correctly.
	for (int i = 0; i < strAttributes.GetLength(); i++)
	{
		if (strAttributes[i] == '|')
			strAttributes.SetAt(i, char(0));
	}

	BOOL b = SQLConfigDataSource(NULL, ODBC_CONFIG_SYS_DSN, "Microsoft Access Driver (*.mdb)",
		(LPCSTR) strAttributes);
	if (!b)
	{
		CString strErrorMsg;
		for (int i = 1; i <= 8; i++)
		{
			WORD cbErrorMsg;
			DWORD dwErrorCode;
			RETCODE r = SQLInstallerError(i, &dwErrorCode, strErrorMsg.GetBuffer(100), 100, &cbErrorMsg);
			if (r == SQL_NO_DATA)
				break;
			strErrorMsg.ReleaseBuffer(cbErrorMsg);
			TRACE("Rec: %d: %d, %x (%s)\n", i, r, dwErrorCode, (const char *) strErrorMsg);
		}

		AfxMessageBox("Repair failed!");
	}
	else
		AfxMessageBox("Repair succeeded!");
}
				

Propriedades

ID do artigo: 298145 - Última revisão: segunda-feira, 24 de fevereiro de 2014 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Driver Microsoft Open Database Connectivity para Access 4.0
  • Microsoft Data Access Components 2.1 Service Pack 2
  • Microsoft Data Access Components 2.5 Service Pack 2
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.5 Service Pack 1
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbjet kbmdacnosweep kbprb KB298145 KbMtpt
Traduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 298145

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com