ID do artigo: 181199 - Última revisão: segunda-feira, 14 de março de 2005 - Revisão: 1.2

Como determinar como o ADO será ligar parâmetros

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.
Expandir tudo | Recolher tudo

Sumário

Às vezes é desejável para determinar como o ADO vinculará parâmetros de procedimento armazenado. Este artigo fornece um aplicativo Visual Basic que retorna o nome do parâmetro, tipo, tamanho e direção de um procedimento armazenado escolhido.

Mais Informações

O projeto a seguir tem uma caixa de listagem e um botão de comando no formulário de inicialização. Todos os resultados aparecem na janela Depurar. Observe que o código é fornecido para usar bancos de dados Microsoft SQL Server ou Oracle. Você deve modificar a seqüência de caracteres de conexão e o comentário ou Descomente as linhas que criar a seqüência de caracteres SQL.

  1. Abra um novo projeto no Visual Basic. O Form1 é criado por padrão.
  2. Coloque uma caixa de listagem e um controle de botão de comando em novo formulário.
  3. No menu Project, selecione References e selecione Microsoft ActiveX Data Objects.
  4. Coloque o código a seguir na seção General Declarations do Form1:
       Dim Conn As New ADODB.Connection
       Dim Rs As ADODB.Recordset
    
       Private Sub Form_Load()
          Command1.Caption = "Start"
       End Sub
    
       Private Sub Command1_Click()
          Dim strSQL As String
          Form1.MousePointer = vbHourglass
    
          ' Adjust connection parameters for your server.
          'SQL Server Connection
          Conn.Open "MySQLServer", "sa", ""  'SQL Server Connection
          StrSQL = "SELECT Name FROM sysobjects WHERE Type = 'p'"
    
          'Oracle Connection
          'Conn.Open "MyOracle", "MyUid", "MyPassword"
          'strSQL = "SELECT Distinct Name FROM user_source"
    
          Set Rs = New ADODB.Recordset
          Rs.Open strSQL, Conn, adOpenStatic, adLockReadOnly
    
          Do While Not Rs.EOF
              List1.AddItem Rs(0)
              Rs.MoveNext
          Loop
    
          Form1.MousePointer = vbNormal
    
       End Sub
    
       Private Sub List1_Click()
    
          ListADOParameters (Trim(List1.Text))
    
       End Sub
    
       Sub ListADOParameters(strStoredProcedureName As String)
    
       Dim Cmd As New ADODB.Command
       Dim P As ADODB.Parameter
       Dim i As Integer
    
          Debug.Print "-------------Starting---------------"
          Set Cmd.ActiveConnection = Conn
          Cmd.CommandText = strStoredProcedureName
          Cmd.CommandType = adCmdStoredProc
          Cmd.Parameters.Refresh
    
          For i = 0 To Cmd.Parameters.Count - 1
             Set P = Cmd.Parameters(i)
    
             'Returns a string like this:
             'Parameter[0] is [INID] with ADO DataType adNumeric,
             'Size is 0, Direction is Input.
    
             Debug.Print "Parameter[" & i & "] is [" & P.Name _
               & "] with ADO DataType " _
               & GetDataTypeEnum(P.Type) & ", Size is " _
               & P.Size & ", Direction is " & GetDirectionEnum(P.Direction)
    
          Next i
    
       End Sub
    
       Function GetDirectionEnum(lngDirectionEnum As Long) As String
       Dim strReturn As String
          Select Case lngDirectionEnum
             Case 1: strReturn = "Input"
             Case 2: strReturn = "Output"
             Case 3: strReturn = "Input Output"
             Case 4: strReturn = "Return Value"
             Case Else:
                strReturn = "Unknown DirectionEnum of " & lngDirectionEnum _
                  & " found."
             End Select
             GetDirectionEnum = strReturn
    
          End Function
    
          Function GetDataTypeEnum(lngDataTypeEnum As Long) As String
          'Given ADO data-type constant, returns readable constant name.
          Dim strReturn As String
             Select Case lngDataTypeEnum
                Case 0: strReturn = "adEmpty"
                Case 16: strReturn = "adTinyInt"
                Case 2: strReturn = "adSmallInt"
                Case 3: strReturn = "adInteger"
                Case 20: strReturn = "adBigInt"
                Case 17: strReturn = "adUnsignedTinyInt"
                Case 18: strReturn = "adUnsignedSmallInt"
                Case 19: strReturn = "adUnsignedInt"
                Case 21: strReturn = "adUnsignedBigInt"
                Case 4: strReturn = "adSingle"
                Case 5: strReturn = "adDouble"
                Case 6: strReturn = "adCurrency"
                Case 14: strReturn = "adDecimal"
                Case 131: strReturn = "adNumeric"
                Case 11: strReturn = "adBoolean"
                Case 10: strReturn = "adError"
                Case 132: strReturn = "adUserDefined"
                Case 12: strReturn = "adVariant"
                Case 9: strReturn = "adIDispatch"
                Case 13: strReturn = "adIUnknown"
                Case 72: strReturn = "adGUID"
                Case 7: strReturn = "adDate"
                Case 133: strReturn = "adDBDate"
                Case 134: strReturn = "adDBTime"
                Case 135: strReturn = "adDBTimeStamp"
                Case 8: strReturn = "adBSTR"
                Case 129: strReturn = "adChar"
                Case 200: strReturn = "adVarChar"
                Case 201: strReturn = "adLongVarChar"
                Case 130: strReturn = "adWChar"
                Case 202: strReturn = "adVarWChar"
                Case 203: strReturn = "adLongVarWChar"
                Case 128: strReturn = "adBinary"
                Case 204: strReturn = "adVarBinary"
                Case 205: strReturn = "adLongVarBinary"
             Case Else:
                strReturn = "Unknown DataTypeEnum of " & lngDataTypeEnum _
                 & " found."
             End Select
             GetDataTypeEnum = strReturn
          End Function 
    					
Execute o projeto e selecione um procedimento armazenado na lista. Os resultados são exibidos na janela Verificação imediata.

Referências

Para obter informações adicionais, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
175018  (http://support.microsoft.com/kb/175018/EN-US/ ) Como obter e instalar o driver ODBC do Microsoft Oracle

A informação contida neste artigo aplica-se a:
  • Microsoft ActiveX Data Objects 1.0
  • Microsoft ActiveX Data Objects 1.5
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft ActiveX Data Objects 2.6
  • Microsoft ActiveX Data Objects 2.7
Palavras-chave: 
kbmt kbdatabase kbhowto kbstoredproc KB181199 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 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: 181199  (http://support.microsoft.com/kb/181199/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.