Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Sintomas

Se executar um procedimento armazenado remotamente com parâmetros de saída num servidor ligado através de um controlador ODBC para SQL Server, o controlador ODBC não consegue obter o parâmetro de saída e poderá receber a seguinte mensagem de erro:


[Microsoft] [ODBC SQL Server Controlador]Violação de atributo de tipo de dados restrito

Resolução

Está disponível uma hotfix suportada da Microsoft. No entanto, esta correção destina-se a corrigir apenas o problema descrito neste artigo. Aplique esta hotfix apenas aos sistemas que estão com este problema específico. Esta atualização poderá receber testes adicionais. Portanto, se não for afetado gravemente por este problema, recomendamos que aguarde pela próxima atualização de software que contém esta atualização.

Se a hotfix estiver disponível para transferência, existe uma secção "Transferência de ficheiros hotfix disponível" na parte superior deste artigo da Base de Dados de Conhecimento. Se esta secção não aparecer, contacte o Suporte e Suporte ao Cliente da Microsoft para obter a hotfix.

Nota Se ocorrerem problemas adicionais ou se for necessária uma remoção de problemas, poderá ter de criar um pedido de serviço separado. Os custos habituais de suporte serão aplicados a perguntas e problemas de suporte adicionais que não são qualificáveis para esta hotfix específica. Para uma lista completa dos números de telefone do Suporte ao Cliente da Microsoft ou para criar um pedido de serviço separado, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota: o formulário "Transferência de hotfix disponível" apresenta os idiomas para os quais a hotfix está disponível. Se não vir o seu idioma, significa que não está disponível uma hotfix para esse idioma.

' A versão em inglês desta hotfix tem os atributos de ficheiro (ou posterior) listados na seguinte tabela. As datas e horas destes ficheiros são listadas em hora universal coordenada (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para determinar a diferença entre a hora UTC e a hora local, utilize o separador Fuso Horário da ferramenta Data e Hora do Painel de Controlo.

MDAC 2.7 Service Pack 1

            
   Date         Time   Version          Size     File name
   ----------------------------------------------------------
   12-Nov-2002  02:42  2000.81.9031.12   24,576  Odbcbcp.dll
   12-Nov-2002  02:41  2000.81.9031.12  385,024  Sqlsrv32.dll

MDAC 2.8

            
   Date         Time   Version         Size     File name
   ---------------------------------------------------------
   15-Jun-2004  00:22  2000.85.1045.0   28,672  Dbnmpntw.dll
   15-Jun-2004  00:21  2.80.1045.0     147,456  Msadds.dll
   15-Jun-2004  00:21  2.80.1045.0     512,000  Msado15.dll
   15-Jun-2004  00:21  2.80.1045.0     163,840  Msadomd.dll
   15-Jun-2004  00:21  2.80.1045.0     184,320  Msadox.dll
   15-Jun-2004  00:21  2.80.1045.0      53,248  Msadrh15.dll
   15-Jun-2004  00:21  2.80.1045.0     225,280  Msdaora.dll
   15-Jun-2004  00:21  2.80.1045.0     147,456  Msdart.dll
   15-Jun-2004  00:21  2.575.1045.0    139,264  Msorcl32.dll
   15-Jun-2004  00:21  3.525.1045.0    221,184  Odbc32.dll
   15-Jun-2004  00:22  2000.85.1045.0   24,576  Odbcbcp.dll
   15-Jun-2004  00:21  2.80.1045.0     442,368  Oledb32.dll
   15-Jun-2004  00:21  2000.85.1045.0  503,808  Sqloledb.dll
   15-Jun-2004  00:21  2000.85.1045.0  401,408  Sqlsrv32.dll
   15-Jun-2004  00:08  2000.85.1045.0  208,896  Sqlxmlx.dll

Nota: para ver uma lista de todos os hotfixes disponíveis para o MDAC 2.8, clique no seguinte número de artigo para ver o artigo na Base de Dados de Conhecimento Microsoft:

839801 CORREÇÃO: As correções estão disponíveis para o MDAC 2.8
 

Estado

A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informações

Passos para reproduzir o comportamento

  1. Utilize o seguinte código para criar um procedimento SQL Server com parâmetros de saída num servidor ligado:

        USE pubs
        GO
    
        CREATE PROCEDURE dbo.sample_stored_procedure
            @op varchar(20) output
        AS
        set @op = 'demo string'
        return 0
        GO
    
    

    Nota: não recebe a mensagem de erro listada na secção "Sintomas" se o procedimento armazenado devolver um conjunto de resultados.

  2. O seguinte código de exemplo de aplicação do Microsoft Visual Basic acede ao procedimento armazenado remotamente num servidor ligado. No exemplo de código seguinte, srv1
    esrv2 são os dois servidores que estão a executar o SQL Server e está a criar srv2 como um servidor ligado no srv1.

        Dim cn As new ADODB.Connection
        Dim cmd As new ADODB.Command
        Dim prm As ADODB.Parameter
    
        cn.Open "Driver={SQL Server};Server=srv1;UID=sa;PWD=sa_password;"
    
        cmd.ActiveConnection = cn
    
        cmd.CommandType = adCmdStoredProc
        cmd.CommandText = "srv2.pubs.dbo.sample_stored_procedure"
    
        Set prm = cmd.CreateParameter("op", adVarChar, adParamOutput, 20)
        cmd.Parameters.Append prm
    
        cmd.Execute
        Debug.Print prm.Value
    
        cn.Close
    
        Set cn = Nothing
    

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×