none
WebService retornando DataSet para uma aplicação Dephi 7 RRS feed

  • Pergunta

  • Olá Pessoal,

     

    Estou com seguinte cenário: Estou usando .NET 2.0 para criar um webservice que retorna um dataset.

    Uma aplicação Delphi 7 deve acessar este webservice e pegar o retorno do método (dataset) e preencher um grid, é possível fazer isso usando que objeto do delphi 7, o ADODataSet, ou outro objeto?

    Grato.

    quarta-feira, 25 de outubro de 2006 20:00

Respostas

  • Grande,

    Ficaria assim... (A parte vermelha é a modificação)

    [WebMethod]
    public string GeraListagemPorData(string datainicio, string datafinal)
    {

    string consultaSQL = "SELECT * from Clientes where datai = "+datai+" and dataf="+dataf+";
    SqlConnection conexao = new SqlConnection("Data Source=BANCO;Initial Catalog=Orion;User ID=user;Password=senha");
    SqlDataAdapter adapter = new SqlDataAdapter(consultaSQL, conexao);
    DataSet ds = new DataSet();
    conexao.Open();
    adapter.Fill(ds);
    conexao.Close();

    return ds.GetXML();

    }

    quinta-feira, 9 de novembro de 2006 16:58

Todas as Respostas

  • Talvez seja necessario fazer o parse do XML, não sei exatamente a estrutura do ADODataSet, se for compliant com o DataSet do .NET não deveria ter problemas

     

    quarta-feira, 25 de outubro de 2006 23:10
  • Continuo com problemas...

    Fiz um web service retornando um DataSet com C# 2005, só que a aplicação Delphi não entende o objeto DataSet do .NET, pensei então fazer o webservice retornar um arquivo xml, mas como fazer isso?

    Tem como retornar dados para que uma aplicação delphi entenda sem precisar ser em xml puro?

     

    Obrigado

    quarta-feira, 8 de novembro de 2006 12:55
  • Grande,

    Existe no DataSet um metodo chamado GetXML, este retorn um string contendo os dados. Desta forma vc consegue facilmente (Eu Acredito)  transmitir para o Delphi, modifique o WebService para retornar uma string ao invez de um DataSet.

    Desta forma vc tem o XML na outra ponta ai vc pode trata-lo

    quarta-feira, 8 de novembro de 2006 22:39
  • Olá ViewState,

     

    Obrigado por ajudar, Vou lhe mostrar como está o meu método.

    [WebMethod]
    public DataSet GeraListagemPorData(string datainicio, string datafinal)
    {

    string consultaSQL = "SELECT * from Clientes where datai = "+datai+" and dataf="+dataf+";
    SqlConnection conexao = new SqlConnection("Data Source=BANCO;Initial Catalog=Orion;User ID=user;Password=senha");
    SqlDataAdapter adapter = new SqlDataAdapter(consultaSQL, conexao);
    DataSet ds = new DataSet();
    conexao.Open();
    adapter.Fill(ds);
    conexao.Close();

    return ds;

    }

    Eu deveria então retirar o retorno DataSet e deixar apenas como string? como faço isso no código acima?

     

     

    quinta-feira, 9 de novembro de 2006 12:45
  • Grande,

    Ficaria assim... (A parte vermelha é a modificação)

    [WebMethod]
    public string GeraListagemPorData(string datainicio, string datafinal)
    {

    string consultaSQL = "SELECT * from Clientes where datai = "+datai+" and dataf="+dataf+";
    SqlConnection conexao = new SqlConnection("Data Source=BANCO;Initial Catalog=Orion;User ID=user;Password=senha");
    SqlDataAdapter adapter = new SqlDataAdapter(consultaSQL, conexao);
    DataSet ds = new DataSet();
    conexao.Open();
    adapter.Fill(ds);
    conexao.Close();

    return ds.GetXML();

    }

    quinta-feira, 9 de novembro de 2006 16:58
  • Obrigado ViewState, eu estava fazendo isso mas na aplicação que recebe o DataSet, aí a aplicação em delphi não tinha isso...

    Obrigado pela sua ajuda.

    sexta-feira, 10 de novembro de 2006 11:09
  • Olá . . . estou com o mesmo problema. Consigo pegar o XML do outro lado, mas como faço pra converter pra algo que o delphi entenda ?!

    Sei que não é assunto pra esse forúm, mas já procurei em todo o canto e não achei uma solução  adequada.

     

    Abraços !!!

    sexta-feira, 1 de dezembro de 2006 14:55
  • Grande,

     

    Se vc retornar XML, o delphi vai entender, mas vc tem que fazer um parse do XML

     

    sexta-feira, 1 de dezembro de 2006 17:20
  • oi, sou programador delphi a alguns anos

    o delphi compreende perfeitamente o XML, vc pode fazer integração usando os componentes TXMLTransform, TXMLTransformProvider, e TXMLTransformClient no próprio delphi, sendo que você consegue até mesmo transportar os dados que vc recebeu do WebService para um TDataSet do delphi.

    terça-feira, 12 de dezembro de 2006 12:03
  • ViewState, e se for ao contrario como eu consumiria no Visual Studio 2003 um webservice que retorna uma String?
    terça-feira, 24 de abril de 2007 21:01
  • Olá,

    Dessa forma não dá certo, ele retorna todos os dados em um campo só, como se fosse um memo gigante com todos os dados.

     

    segunda-feira, 16 de maio de 2011 05:15