INF: Ativando clientes SQL DMO sem instalar os utilitários de lado do cliente

ID do artigo: 248241 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Nesta página

Sumário

Este artigo documenta as etapas necessárias para habilitar a funcionalidade do lado cliente SQL Server Distributed Management Objects (SQL-DMO) sem a necessidade de instalar o SQL Server Client Utilities.

Mais Informações

Cenário típico

Escrever um aplicativo que aproveita o SQL-DMO modelo de objeto no SQL Server. Seu aplicativo é executado corretamente no computador servidor propriamente dito e ele será executado bem em computadores cliente quando o SQL Server Client Utilities está instalado. No entanto, por si só, o aplicativo não é executado. Além disso, você poderá ver vários erros relacionados a isso bem. Os erros mais comuns são:
ActiveX não é possível criar objeto
Campo não está vinculado corretamente
Não é possível localizar ponto de entrada
Observação: Instalar o Microsoft Data Access Components (MDAC) não resolve o problema.

MDAC não instala o ficheiro Sqldmo.dll ou qualquer uma das várias DLLs de dependentes está associada com o ficheiro Sqldmo.dll. É o MDAC inclui muitas das DLLs relacionadas que usa uma conexão de cliente SQL-DMO. Seja como for, reunindo MDAC com a instalação do aplicativo não será a resposta mais eficiente, porque você não precisa todas as DLLs do MDAC para obter sua conexão de DMO para funcionar. Além disso, o MDAC instala vários recursos adicionais que você provavelmente nunca irá usar em seus computadores cliente. O ponto principal aqui é que você não precisa instalar todos do MDAC para obter a funcionalidade que desejar, apenas as DLLs necessárias. As DLLs são abordadas posteriormente neste artigo.

Como diferentes tipos de DLLs e onde você precisa colocá-los são discutidos, vamos divagando por um momento e rever resumidamente Win32 e COM DLLs com base. Para os propósitos deste artigo, tudo o que você precisa saber é como distingui-los e, em seguida, o que fazer com as DLLs depois de você identificá-los. Com isso em mente, aqui está o que você precisa saber:
  • Você precisa registrar COM DLLs através do Regsvr32 utilitário.
  • Você precisa colocar DLLs nativas Win32 no caminho do aplicativo.
  • Você também pode inserir DLLs nativas Win32 do Win32 diretório.
Às vezes, pode ser difícil fazer uma distinção entre COM e não COM DLLs com base; no entanto, geralmente um COM base DLL sempre tem os seguintes pontos de entrada:
  • DllGetClassObject
  • DllRegisterServer
  • DllUnregisterServer
  • DllCanUnloadNow
Para exibir os pontos de entrada, clique a DLL com o botão direito do mouse e, em seguida, clique em Visualização rápida no menu de atalho. As informações que aparecem são observadas na seção "Tabela de exportação" as informações de DLL.

A seguir é que a lista de SQL-DMO relacionadas DLLs que você precisa ativar DMO a partir de um cliente:
  • Sqldmo.dll
  • Sqldmo.rll
  • Sqlsvc.dll
  • Sqlsvc.rll
  • Sqlwoa.dll
  • Sqlresld.dll
  • Sqlwid.dll
  • W95scm.dll
Na lista de DLLs anterior, o Sqldmo.dll é a única que você precisa registrar no computador cliente. No entanto, para registrar o ficheiro Sqldmo.dll com êxito, o ficheiro Sqldmo.rll deve estar no computador cliente no seguinte diretório:
(localização do lado servidor): c:\Mssql7\Binn\Resources\1033
(localização do lado cliente): c:\Winnt\System32\Resources\1033
O ficheiro Sqldmo.rll sempre desenha perguntas. Um arquivo .rll é um arquivo de recurso localizado. O diretório de recurso varia com base no idioma nacional configurado na instalação do SQL Server e o cliente. Neste exemplo, diretório 1033 é uma representação decimal do identificador de idioma 0X0409, indicando português. Depois que esse arquivo .rll estiver no local, você pode registrar o ficheiro Sqldmo.dll invocando o utilitário Regsvr32. O comando para registrar o arquivo é:
C:\Regsvr32 Sqldmo.dll
				
ao registro bem-sucedido, você deve receber uma mensagem que afirma:
DLLRegisterServer em Sqldmo.dll teve êxito.
Se você deseja automatizar esse registro em sua rotina de instalação do aplicativo, consulte os vários parâmetros associados com o utilitário Regsvr32. O comando para registar o ficheiro silenciosamente é:
c:\regsvr32 /s- sqldmo.dll
				
o diretório que contém o ficheiro Sqldmo.dll deve ter uma estrutura específica no computador cliente; caso contrário, você receberá uma mensagem de erro semelhante à seguinte:
LoadLibrary("C:\Winnt\System32\sqldmo.dll") falha.
GetLastError retorna 0x0000007e
Esse erro significa que ocorreu erro 126 (expresso em decimal), que corresponde a um erro de "módulo especificado não encontrado". Neste exemplo, isso se relaciona o ficheiro Sqldmo.rll. Isto é, o utilitário Regsvr32 localiza o ficheiro Sqldmo.dll, mas não é possível concluir seu registro, a menos que o ficheiro Sqldmo.rll também esteja disponível no subdiretório 1033 esperado.

Para evitar isso, faça o seguinte:
  1. Adicione um diretório chamado "Recursos" para o local onde o Sqldmo.dll reside.
  2. Adicione que um subdiretório em recursos chamado "1033".
  3. Nesse diretório, copie o ficheiro Sqldmo.rll.
Ao concluir, a estrutura de diretório deve aparência:
Directory that contains Sqldmo.dll\Resources\1033
E esse diretório 1033 deve conter o ficheiro Sqldmo.rll.

Além para as DLLs mencionadas anteriormente, você também deseja verificar se você possui o netlibrary adequado DLLs instaladas. O principal netlibrary DLLs necessárias são:
  • Pipes nomeados: dbnmpntw.dll
  • Soquetes: Dbmssocn.dll
  • Multi-Protocol: dbmsrpcn.dll
Esses são Win32 com DLLs, portanto, você não precisa registrar essas DLLs. Basta colocar as DLLs no diretório System32 para Windows NT ou para o diretório de sistema para o Microsoft Windows 95 ou Windows 98.

Depois de concluir as etapas anteriores, o aplicativo cliente deve iniciar sem nenhum dos problemas iniciais causados por ausência de arquivos necessários.

Propriedades

ID do artigo: 248241 - Última revisão: terça-feira, 13 de maio de 2003 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbmt kbinfo KB248241 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: 248241

Submeter comentários