Usuário com melhor resposta
Web Services - Receber valor de Arrays

Pergunta
-
Sou iniciante em vb.net e estou meio perdido em alguns quesitos. Crieu um Web Service e o mesmo será consumido dentro do Office 2003, utilizando para isso o Web Service Toolkit 2003.
Eu utilizo o código abaixo para buscar dados em um banco de dados em meu servidor:
<WebMethod()> _
Public Function Acesso(ByVal chaves As String) As String() 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 & "'" Dim conn As Connection = New Connection Dim connMode As Integer = ConnectModeEnum.adModeUnknownconn.CursorLocation = CursorLocationEnum.adUseServer
conn.Open(ConnectionString,
"", "", connMode) Dim cmdType As Integer = CommandTypeEnum.adCmdText Dim rs As _Recordset = conn.Execute(sql) Dim ds As DataSet = New DataSet("Recordset") Dim da As OleDbDataAdapter = New OleDbDataAdapterDim result(3) As String
result(0) = rs(0).Value
result(1) = rs(1).Value
result(2) = rs(2).Value
rs.Close()
Return result End FunctionEle gera corretamente o XML da requisição, como mostrado abaixo:
<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/"><string>Master Protocolo</string><string>123456</string><string>REDESOFT</string><string xsi:nil="true" /></ArrayOfString>Dentro do office eu utilizo o seguinte comando para chamar a função:Dim ccp As New clsws_testeMe.Aplic = ccp.wsm_Acesso(Me.Ch)O que ocorre, é que quando era apenas uma string, eu conseguia receber dentro do forme, mas não sei pegar as mesmas informações que estão sendo retornados através de Arrays.Alguem poderia me dar uma dia com o código ou me indicar conteudo para leitura?Desde já agradecido.
Respostas
Todas as Respostas
-
-
Rui, minha divida está ficando grande. Muito obrigado pela ajuda.
Só para constar e o tópico poder beneficiar os que teveram a mesma duvida, em response(3), colocamos somente responde(), com abaixo: Como sou novo no .net, não seis as implicações, mas dentro do Office que era o intuito de consumir o Web Service, tiver que fazer essa pequena modificação para funcionar.
Dim response() As String
Dim ccp As New clsws_teste
response = ccp.wsm_Acesso(Me.Ch)
Me.Aplic = response(0) -
Bem na verdade da na mesma por ou nao o 3....
é q pondo o 3.. vc informa q o vetor tera apenas 3 "linhas", sem ele pode ter um numero de linhas qq que vai vir do metodo ccp.wsm_Acesso(Me.Ch)
eu pus o 3 porque nunca se sabe quem vai mexer um dia no sistema e assim o cara ja sabe q na resposta tem q vir sempre 3 registros...
mas a funcionalidade é a mesma... tanto faz por o 3 ou apenas um comentario no fonte avisando
T+
-
Especificamente no Access, colocando valor no Responde, deu o erro "Erro de compilação - Não foi possivel atribuir uma matriz", mas como o VBA é cheio de "frufru" acreditei ser por isso.
Aproveitando a deixa, mais uma vez muito obrigado pela ajudar. Se um dia estiver ao meu alcance retribuir, estarei a disposição.
-