Fórum WebService (lado servidor) #4814

21/04/2009

0

Boa tarde   Criei um WebService e gostaria de acessar dados de uma base de dados firebird.   Para esta tarefa, preciso criar um datamodule, pois os métodos do WebService farão atualização de vários dados em várias tabelas.   Como devo criar este DataModule?   Vocês precisam da unit de declaração deste WebService, caso precisem, por favor me falem que eu mandarei.   Fico aguardando um posicionamento.   Obrigado   Denis  
Denis Godoi

Denis Godoi

Responder

Posts

21/04/2009

Rodrigo Mourão

Olá Denis, Boa Tarde !!!

Bem vamos lá se entendi você criou um WebService e quer saber como acessar a base de dados com este WebService, correto ?  Pois bem ter ou não ter DataModule não faz diferença pois um webserive a grosso modo nada mais é do que disponibilizar métodos (services) atraves de XML sem identificar a forma como foram implementados. Então para quem vai consumir seu data module pouco importa se vai ter ou nao DataModule, se e DBX, se é Asp Net ou não.

Com Delphi a criação de um webservice se torna uma tarefa muito simples, acessar dados tb. Bem para que eu possa lhe ajudar preciso saber o seguinte. Como desenvolveu o seu WebService ? Win32 ou Asp.Net ?  Com esta informação posso lhe mostrar um exemplo de como criar por exemplo metodos para inserir um registro ou recuperar dados atraves de um web service !!!

No aguardo !!

Abs !!!


Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

21/04/2009

Denis Godoi

Boa noite Rodrigo   Fiz este WebService com Delphi 7. Este WebService é simples, com os métodos publicados normalmente. Ele será usado para trocar mensagens com o SAP XI, ou seja, o SAP enviará mensagens para o meu WebService e eu terei que gravar estas mensagens em um banco de dados.   O WebService está publicado no endereço:   http://200.150.163.18/VISANET-SAP/   Minha dúvida está em onde jogar os componentes de acesso a dados, no meu caso uso DBEXPRESS.   Pensei em usar um DataModule...   Se precisar de mais alguma informação, me avise...   Abraço   Denis
Responder

Gostei + 0

21/04/2009

Rodrigo Mourão

Ok Denis Perfeito !!!

Bem como lhe falei usar ou não um DataModule não fará muita muita diferença. Acredito que sua dúvida seja mais conceitual pois então vamos lá.

No Delphi 7 se me lembro bem (Digo isso pois não o tenho aqui instalado, porém amanhã confirmarei a informação), é criado um WebModule e nele são colocados os componentes para publicacao do webservice. Uma sugestão de arquiteruta seria colocar no WebModule o SqlConnection e adicionar um ou mais DataModules para conter seus componentes de conexao !!

A partir do Delphi 2007 com o DBX4 fica mais simples, elegante e eficiente criar as classes do DBX4 dentro do proprio metodo não dependendo de componentes para realizar operacoes no banco e ainda reaproveitar os metodos em .Net.

Espero ter ajudado !!!

Abs !!!



Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

21/04/2009

Rodrigo Mourão

Ok Denis Perfeito !!!

Bem como lhe falei usar ou não um DataModule não fará muita muita diferença. Acredito que sua dúvida seja mais conceitual pois então vamos lá.

No Delphi 7 se me lembro bem (Digo isso pois não o tenho aqui instalado, porém amanhã confirmarei a informação), é criado um WebModule e nele são colocados os componentes para publicacao do webservice. Uma sugestão de arquiteruta seria colocar no WebModule o SqlConnection e adicionar um ou mais DataModules para conter seus componentes de conexao !!

A partir do Delphi 2007 com o DBX4 fica mais simples, elegante e eficiente criar as classes do DBX4 dentro do proprio metodo não dependendo de componentes para realizar operacoes no banco e ainda reaproveitar os metodos em .Net.

Espero ter ajudado !!!

Abs !!!


P.S.:  Amanhã estarei confirmando a informação do WebModule !!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

21/04/2009

Denis Godoi

Beleza Rodrigo   De acordo com as suas instruções, dentro das minhas funções, eu criei a estrutura abaixo:     if not webmodule1.db.Connected then begin
      try
         webmodule1.db.Connected              := false;
         webmodule1.db.Close;
         webmodule1.db.LoadParamsFromIniFile('d:\cognum\rede_sql_intec_visa.ini');
         webmodule1.db.Connected              := true;
      except
         result := 0;
      end;
   end;
  Pelo menos compilou!!!   Amanhã farei os testes...   Abraço   Denis
Responder

Gostei + 0

22/04/2009

Denis Godoi

  Bom dia Rodrigo   Quando  coloquei as chamadas ao banco de dados dentro do meu WebService, após a publicação na web, quando acesso o endereço, aparece a mensagem:   Internal Server Error 500 Exception: EDatabaseError
Message: Unable to Load dbexpint.dll
    Esta dll é do interbase/firebird, onde e como eu tenho que registrá-la.   Fico aguardando uma resposta...   Abraço   Denis
Responder

Gostei + 0

22/04/2009

Rodrigo Mourão

Olá Dennis, Desculpe não ter comentado antes mas como você falou que o webservice estava funcionando assumi que as dll já estavam lá!!!


Bem seu webserver esta rodando num servidor web, correto? Provavelmente IIS. Pois bem nesta máquina você deverá possuir três dll. A dll do DBX, a dll do banco e a dll Midas caso trabalhe com ClientDataSet. Por exemplo, se você usa o dirver do Interbase para acessar o firebird entao seria dbexpint.dll, gds32.dll e o midas.dll. Se tiver usando o FBIU15 serão as dll: dbexpUIBfire15.dll, fbclient.dll e midas.dll;

Identifique quais são as dll certas e copias para a pasta system32 do servidor, acredito que isso resolverá o problema !!!

Abs!!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi

Em Tempo: No delphi 7 recurso é memso o webmodule.

Responder

Gostei + 0

22/04/2009

Rodrigo Mourão

Detalhe importante, pode ser necessário registar as dll utilizando o regsvr32. Exemplo:

regsvr32 /i %windir%\system32\MinhaDll.dll

Abs !!!

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

22/04/2009

Rodrigo Mourão

Olá Amigo, a soluçõa resolveu seu problema ???
Podemos encerrar o chamdo ???

No aguardo  !!!


Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar