none
Web Service retornando varios valores RRS feed

  • Pergunta

  •  

    Estou começando a engatinhar em Web Service e preciso da ajuda dos companheiros aqui do forum.

     

    Estou criando um Web Service que consulta dados em um base de dados. Esse mesmos dados serão consumitos e preenchidos em um formulário no Access. Até ati tudo bem.

     

    O formulário tem 03 campos e consigo carrega os dados de apenas uma dos dados da consulta através do Web Service.

     

    O que ocorre é que só consigo retornar um dos dados da consulta e na verdade preciso de todos. A consulta tem 03 campos: Aplicativo, Chave, Solicitante

     

    O código que uso é o seguinte:

     

    <WebMethod()> _
        Public Function Acesso(ByVal chaves As String) As String

            'Estabelece a conexão com o provedor
            Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Inetpub\vhosts\kartoffel.com.br\httpdocs\database\registros.mdb"
            Dim sql As String = "SELECT Aplicativo,Chave,Solicitante From Reg_Aplics where Chave='" & chaves & "'"

            ' Create a Connection object and open it
            Dim conn As Connection = New Connection
            Dim connMode As Integer = ConnectModeEnum.adModeUnknown
            conn.CursorLocation = CursorLocationEnum.adUseServer
            conn.Open(ConnectionString, "", "", connMode)
            'Dim recAffected As Object
            Dim cmdType As Integer = CommandTypeEnum.adCmdText
            Dim rs As _Recordset = conn.Execute(sql)
            ' Create dataset and data adpater objects
            Dim ds As DataSet = New DataSet("Recordset")
            Dim da As OleDbDataAdapter = New OleDbDataAdapter
            ' Call data adapter's Fill method to fill data from ADO
            ' Recordset to the dataset
            'Return da.Fill(ds, rs, "NomeAplicativos")
            'da.Fill(ds)
            Return  rs(0).Value 

            Return  rs(1).Value 

            Return  rs(2).Value 
            rs.Close()


        End Function

     

    O que ocorre é que ele retorna apenas o rs(0), os outros não são retornados.

     

    Sei que estou errando feio. Alguem poderia me indicar aonde está meu erro?

     

     

    quinta-feira, 11 de dezembro de 2008 02:16

Respostas

Todas as Respostas

  • Basico de .NET,

     

    vc executou o Return, ele sai do metodo e nao executa mais nada abaixo desta linha... deve ate ter dado um Hint ai te avisando disso...

     

    cria um array de string para voltar o q vc prescisa...

     

    Public Function Acesso(ByVal chaves As String) As String[]

    [..]

     

    Dim result As String[3]

    result[0] = rs(0).Value 

    result[1] = rs(1).Value 

    result[2] = rs(2).Value 

    rs.Close()

    Return result

    quinta-feira, 11 de dezembro de 2008 17:22
    Moderador
  • Rui obrigado pela força... com você orientão o código ficou assim:

     

     

     

    <WebMethod()> _

    Public Function Acesso(ByVal chaves As String) As String[]

    'Estabelece a conexÆo com o provedor

    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Inetpub\vhosts\kartoffel.com.br\httpdocs\database\registros.mdb"

    Dim sql As String = "SELECT Aplicativo,Chave,Solicitante From Reg_Aplics where Chave='" & chaves & "'"

    ' Create a Connection object and open it

    Dim conn As Connection = New Connection

    Dim connMode As Integer = ConnectModeEnum.adModeUnknown

    conn.CursorLocation = CursorLocationEnum.adUseServer

    conn.Open(ConnectionString, "", "", connMode)

    'Dim recAffected As Object

    Dim cmdType As Integer = CommandTypeEnum.adCmdText

    Dim rs As _Recordset = conn.Execute(sql)

    ' Create dataset and data adpater objects

    Dim ds As DataSet = New DataSet("Recordset")

    Dim da As OleDbDataAdapter = New OleDbDataAdapter

    Dim result As String[3]

    result[0] = rs(0).Value

    result[1] = rs(1).Value

    result[2] = rs(2).Value

    rs.Close()

    Return result

    End Function

     

    Fiz a adptação que você informou e está dando o erro "Identifier expected" e para as variaveis "not declarede".

     

    Saberia me dizer aonde estou pecando?

     

     

    quinta-feira, 11 de dezembro de 2008 21:35
  •  

    Entao... eu costumo usar C# ..... faz muito tempo q nao uso VB

     

    pesquisei no google...

    http://www.startvbdotnet.com/language/arrays.aspx

     

     

    corrigindo o codigo

     

    Public Function Acesso(ByVal chaves As String) As String()

     

    Dim result(3) As String

    result(0) = rs(0).Value

    result(1) = rs(1).Value

    result(2) = rs(2).Value

     

    T+

     

     

    sexta-feira, 12 de dezembro de 2008 14:23
    Moderador
  • Rui, muito obrigado pela ajuda. Fico devendo uma. Quando precisar, estou a disposição.

     

    domingo, 14 de dezembro de 2008 12:36