PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 25 → Usando um banco de dados externo de iOS ou Android com outros bancos de dados que não seja o HFSQL
Usando um banco de dados externo de iOS ou Android com outros bancos de dados que não seja o HFSQL
Started by Boller, Sep., 29 2020 10:06 PM - No answer
Registered member
3,181 messages
Popularité : +89 (91 votes)
Posted on September, 29 2020 - 10:06 PM
o suporte do blog

Usando um banco de dados externo de iOS ou Android com outros bancos de dados que não seja o HFSQL, princípio completo e por que SQLConnecteWS pode ser válido enquanto SQLExec falha em executar a primeira solicitação?

No blog do ST

Tags: banco de dados , dados , iOS , android , comentário , externo , sqlconnectews
29 de setembro de 2020
Deixe um comentário
publicado por Guillaume BAYLE
Um aplicativo WINDEV executado no Windows pode se conectar com um conector nativo , um provedor OLE DB ou um driver ODBC a um banco de dados Oracle, MySQL, MariaDB SQL SERVER, PostgreSQL (…).



De forma idêntica, um aplicativo WINDEV Mobile executado no iOS ou Android pode se conectar ao mesmo banco de dados. E isso, mesmo que o editor de banco de dados não forneça um cliente nativo para iOS ou Android.



Aqui está o princípio detalhado começando com os pré-requisitos:

um servidor web no qual instalamos:
o servidor WINDEV reservado com o serviço da web de acesso ao banco de dados ,
um conector nativo ou provedor OLE DB para acesso ao banco de dados,
o cliente de banco de dados,
se o servidor reservado estiver em um servidor diferente daquele que hospeda o banco de dados, abra todas as portas necessárias para a comunicação entre o cliente e a base.
o aplicativo Android que vai:
use SQLConnecteWS para fornecer os parâmetros de conexão ao banco de dados e o endereço do servidor que hospeda o serviço da web,
SQLExec para executar consultas nos bancos de dados (como um aplicativo WINDEV faria no Windows).
Como funciona:
Ótimo. ;-)



Como funciona, em detalhes:

o aplicativo chama a função SQLConnecteWS com:

o endereço do webservice no servidor: este endereço é usado para recuperar a descrição do webservice (WSDL) e todos os dados necessários para seu uso.

O aplicativo mantém essa descrição na memória para uso posterior.
os parâmetros de conexão do banco de dados: estes são todos os parâmetros:
que será usado no servidor reservado, para fazer a conexão efetiva com a base quando necessário,
os mesmos parâmetros que teriam sido usados ​​pela função SQLConnect de um aplicativo WINDEV para se conectar ao mesmo banco de dados do servidor reservado.

O aplicativo lembra seus parâmetros de conexão.

o aplicativo chama a função SQLExec para todas as consultas ou atualizações do banco de dados. A função SQLExec irá:
ligue para o serviço da web com o endereço (endereço de localização) contido em sua descrição WSDL,
se esta for sua primeira chamada, acione a conexão com a base com os parâmetros armazenados ao chamar SQLConnecteWS
passe o código SQL da consulta para que o servidor a execute.

Quando o serviço da web recebe uma solicitação do aplicativo móvel iOS ou Android:
se for a primeira chamada faz o SQLConnect com os parâmetros recebidos para a conexão e faz o SQLExec com o código SQL do pedido, para todas as chamadas subsequentes, ele executa o SQLExec com o código SQL passado pelo aplicativo móvel.
O webservice, portanto, serve apenas como um intermediário para contornar a ausência de um cliente para o banco de dados.



O princípio deste mecanismo é simples, mas existem, portanto, alguns intermediários que podem brincar com os grãos de areia. As armadilhas mais comuns que bloqueiam consultas são:

Falha na chamada do webservice no SQLConnecteWS : verifique a configuração do servidor web, ele não tem RAWP (o servidor reservado) ativado no site virtual do servidor web que recebe a solicitação,
falha ao chamar o serviço da web no primeiro SQLExec :

o endereço de consumo do serviço da web não é válido: o "endereço de localização" contido em sua descrição WSDL é falso. É o que acontece se na instalação do servidor reservado foi atribuído um nome ou um endereço IP da rede local, inacessível quando é chamado a partir de um domínio. Neste caso, o mais simples é:

Reinstalar o servidor reservado, na etapa "Endereço do serviço da web", indique o endereço externo ou, melhor ainda, o domínio que permite o acesso ao servidor web que hospeda o webservice.
servidor reservado, cliente de banco de dados, conector nativo ou provedor OLE DB não estão no mesmo modo de compilação exclusivo: todos devem ser de 32 bits ou todos devem ser de 64 bits.
ou os parâmetros de conexão não são adequados: o teste no servidor no qual o servidor reservado está instalado de um SQLConnecting com um executável WINDEV pode facilitar as pesquisas para verificar os parâmetros.


Bom saber :

Podemos recuperar a descrição do serviço da web (WSDL) como a função SQLConnecteWS faz .
Por exemplo, se dermos a SQLConnecteWS o endereço https: // myserver, o WSDL será recuperado com:

https: //myserver/WDSOAPDB_WEB/awws/WDSOAPDB.rawws? Wsdl

Isso permite, por exemplo, verificar o endereço de chamada ("endereço de localização" no final) do serviço da web pela função SQLExec .

Você também pode testar a versão do servidor reservado que hospeda o webservice:

https: // meu servidor / RAWP / RAWP / EXE / VERSION

Quando o webservice não tiver sido instalado com o endereço correto a ser consumido (consulte "endereço de localização" acima), ou se este endereço mudar, o endereço pode ser substituído diretamente no servidor sem passar pela reinstalação completa. Neste caso, o endereço deve ser alterado:
no arquivo WSDL do servidor (por meio de um editor de texto):

C: \ Arquivos de programas \ PC SOFT \ Reserve Server <versão> \ WDSoapDB \ wdsoapdb.wsdl
no valor de URL da chave de registro (por meio do programa REGEDIT):
HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ PC SOFT \ RSERVER \ <version> \ Webservices \ wdsoapdb

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/