Artigo: 181199 - Última revisão: segunda-feira, 14 de Março de 2005 - Revisão: 1.2

Como determinar como o ADO É ligação 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 | Reduzir tudo

Sumário

Por vezes é útil para determinar como ADO vai vincular parâmetros de procedimentos armazenados. Este artigo fornece uma aplicação do Visual Basic que devolve o nome do parâmetro, tipo, tamanho e direcção a partir de um procedimento armazenado escolhido.

Mais Informação

O projecto seguinte tem uma caixa de listagem e um botão de comando do formulário de arranque. Todos os resultados aparecem na janela depuração. Tenha em atenção que o código é fornecido para utilizar bases de dados Microsoft SQL Server ou Oracle. Tem de modificar a cadeia de ligação e o comentário ou uncomment as linhas que criar a cadeia de SQL.

  1. Abra um novo projecto no Visual Basic. É criado o Form1 por predefinição.
  2. Coloque uma caixa de listagem e um controlo de botão de comando no formulário novo.
  3. No menu Project, seleccione References e, em seguida, seleccione Microsoft ActiveX Data Objects.
  4. Coloque o código seguinte na secçã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 projecto e seleccione um procedimento armazenado a partir da lista. Os resultados aparecem na janela de depuração.

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 adquirir e instalar o controlador de ODBC 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 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: 181199  (http://support.microsoft.com/kb/181199/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.