PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → Webdev - Sobre o WAS e SqlConnectWs Conexão Remota Mobile com Servidor SQL
Webdev - Sobre o WAS e SqlConnectWs Conexão Remota Mobile com Servidor SQL
Débuté par adrianoboller, 04 aoû. 2015 14:07 - 14 réponses
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 04 août 2015 - 14:07
Prezados:

Complemento das aulas do porfessor Neri: aula 6217-6223

Caso consigo conectar no banco, porém dá a seguinte mensagem:

SQL Error: No server response. Check whether a HTTP server is present on the target computer. Problem sending information on socket. 100072

Em uso o Reserved Apache

Tente isso:

1) Apache 2.4.9 ou superior com serviço rodando
2) MySQL
3) Instalar o Reserved (WAS) 32 bits (apenas para acesso remoto a banco de dados)
3.1) Na configuração do enderêço IP do servidor (aba Advanced), informar assim, por exemplo: http://192.168.0.1:89 e não http://localhost:89
3.2) Nesta mesma aba, clicar no botão Diagnostic. Tem que dá tudo OK. Sempre, o último check dá vermelho.
Tem que incluir uma linha lá no HTTP.CONF do Apache. Você sabe fazer isso?
3.3) Instalar o WX200MYSQL029.EXE (drive de acesso remoto do MySQL do Windev)
3.4) Copiar o arquivo libmysql.dll na pasta do Reserved que fica dentro da pasta "ARQUIVOS DE PROGRAMAS\PC SOFT\Reserved Server 20"
4) No aplicativo, criar as rotinas de conexão remota. Não usar o ODBC.

//Para conexão é algo parecido com isso:

mServerWS is string = "http://192.168.0.1:89" // <- o mesmo que informou no Reserved
mSource is string = "192.168.0.1" <- o IP DO banco
mUsuario is string = "nome do usuario" <- com permissão de acesso remoto ao banco
mSenha is string = "senha" <- senha DO usuário DO banco
mBancoDeDados is string = "nome_do_banco"
mTipo is string = "MySQL"

IF SQLConnectWS(mServerWS,mSource,mUsuario,mSenha,mBancoDeDados,mTipo) = 0 THEN
SQLInfo()
Error("Erro na conexão ao banco de dados", "Error code: "+ SQL.Error + CR + SQL.MesError)
RETURN
ELSE
Info("Conectou")
msql is string = "select * from sua_table"
mRunSql is boolean
mRunSql = SQLExec(msql,"ler_table")
IF mRunSql = False THEN
//info("Nada a mostrar")
SQLInfo("ler_table")
Info("SQL error: " + SQL.MesError,SQL.Error)
ELSE
TableDeleteAll(Table1)
WHILE SQLFetch("ler_table")=0
TableAddLine(Table1,SQLGetCol("ler_table",2))
END
END
END


1. para a conexão com Bancos de Dados externa , não se utiliza o WAS y sim um Retail dele chamado de Reserved Webdev Server. vem junto com o Instalador do Windev Mobile dentro de (O WAS fica na pasta Install do Windev, WebDev ou do Mobile depois de instalados. C:\WinDev Mobile 20\Install\WDRServer).
2. Apenas se pode instalar sobre Windows, ate o momento não si tem um instalador Linux.
3. Ele não tem limite de conexões, cuidado que na configuração tem uma opção para limitar caso se deseja.

Para terminar WAS não e o mesmo que WDR --> Reserved Webdev Server, o WDR apenas serve para a conexão remota com banco de dados desde o Mobile.

O SQLConnecWS foi criado justamente para não precisarmos criar um webservice. Mas, vai da necessidade de cada um.

Links complementares:

http://forum.pcsoft.fr/fr-FR/pcsoft.us.webdev/1563-webservice-com-apache-1594/read.awp

http://forum.pcsoft.fr/fr-FR/pcsoft.us.webdev/1595-webservice-example-apache-httpd-conf-configuration-webservice-exemplo-1599/read.awp

http://windevdesenvolvimento.blogspot.com.br/2015/01/windevmobile-postgres-webservice.html



:merci:
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 18 août 2015 - 18:53
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 03 octobre 2015 - 15:38
Procedure Ex_SqlConnectWs()

//Esse seria o codigo de conexao no celular para usar o comando SQLConnectWs()
//Que permite acessar uma base remota no celular sem a necessidade de criar um Webservice
//Lembro que dessa forma fica aberto todas as tabelas do seu banco e deve ter uma configuracao precisa de segurança no usuario de conexao
//Ja o Webservice é como fosse um firewall de banco de dados e prestador de serviços estipulado e restritos, poendo totalmente ser
//monitorado com logs de acesso e execuções, podendo ter um maior controle dos dados por quem é usado, podendo ate barrar o acesso pelo
//TOKEN.


//Para conexão é algo parecido com isso:
ok is boolean = False

mServerWS is string = "http://192.168.0.1:89" // <- o mesmo que informou no Reserved
mSource is string = "192.168.0.1" //<-o IP DO banco
mUsuario is string = "nome do usuario" //<-com permissão de acesso remoto ao banco
mSenha is string = "senha" //<-senhaDOusuárioDObanco
mBancoDeDados is string = "nome_do_banco"
mTipo is string = "MySQL"

IF SQLConnectWS(mServerWS,mSource,mUsuario,mSenha,mBancoDeDados,mTipo) = 0 THEN

SQLInfo()

Error("Erro na conexão ao banco de dados","Error code: "+SQL.Error+CR+SQL.MesError)

ELSE

Info("Conectou")

msql is string = "select * from sua_table"
mRunSql is boolean
mRunSql = SQLExec(msql,"ler_table")

ok = False

IF mRunSql = False THEN
//info("Nada a mostrar")
SQLInfo("ler_table")
Info("SQL error: "+SQL.MesError,SQL.Error)
ELSE
//TableDeleteAll(Table_sua_table) //na janela vc cria uma table programada
WHILE SQLFetch("ler_table") = 0
ok = True
//TableAddLine(Table_sua_table ,SQLGetCol("ler_table",2)) // alimenta a table programada com registros
END
END

END

RESULT(ok)


--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Posté le 06 octobre 2015 - 20:38
Adriano gostaria de saber se nao tem algum componente nativo tipo o que conecta com banco local HFSQL para fazer conexao com banco externo.

A conexao Nativo mysql nao abre no analyses

mServerWS isstring="http://192.168.0.1:89"// <- o mesmo que informou no Reserved
mSource isstring="192.168.0.1"<-o IPDObanco
mUsuario isstring="nome do usuario"<-com permissão de acesso remoto ao banco
mSenha isstring="senha"<-senhaDOusuárioDObanco
mBancoDeDados isstring="nome_do_banco"
mTipo isstring="MySQL"

IFSQLConnectWS(mServerWS,mSource,mUsuario,mSenha,mBancoDeDados,mTipo) =0THEN
SQLInfo()
Error("Erro na conexão ao banco de dados","Error code: "+SQL.Error+CR+SQL.MesError)
RETURN
ELSE
Info("Conectou")
msql isstring="select * from sua_table"
mRunSql isboolean
mRunSql=SQLExec(msql,"ler_table")
IFmRunSql=FalseTHEN
//info("Nada a mostrar")
SQLInfo("ler_table")
Info("SQL error: "+SQL.MesError,SQL.Error)
ELSE
TableDeleteAll(Table1)
WHILESQLFetch("ler_table")=0
TableAddLine(Table1,SQLGetCol("ler_table",2))
END
END
END
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 octobre 2015 - 20:44
Prezado Kennedy

Na pasta install depois de descompactar os Wx tem no Menu.exe a instalacao do ODBC.

Basta instalar no servidor o Driver que voce for usar em conjunto com o SqlConnectWs.

Passos:

1 - crie as tabelas
2 - ligue elas um pra muitos usando o banco que vc quiser usar
mysql postgresql, instale o banco e crie as tabelas e os acessos a elas.
3 - instale o reserved - configure ele conforme os videos
4 - configure o firewall como off
para os testes no servidor web
5 - não pode ter nenhum programa de bate-papo tipo o Skype no servidor usando a porta 80
pois o reserved a usa
6 - configure o iis ou o apache 2.4.9 ou superior onde vc terá o acesso externo liberado para o servidor
7 - deixe no servidor o reserved sempre aberto, não o feche
8 - verifique no servidor se os serviços estão configurados corretamente e ativos para o reserved funcionar
9 - crie um app android no windev mobile
coloque o código acima que exemplifiquei
mas apontando para as senhas e acessos do seu servidor
isso vc ve com quem montou ou vendeu o acesso a esse servidor
10 - Instale o driver do banco de dados que vai usar no servidor

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 octobre 2015 - 20:56
Links para fazer funcionar o SqlConnectWS:


HFSQL - Banco:
http://www.windev.com/ts/download/20/download.php…



Free Native Connectors March 17, 2015:



Native MySQL Access (Windows) http://www.windev.com/ts/download/common-modules-20/mysql.htm

Native MySQL Access (Linux) http://www.windev.com/ts/download/common-modules-20/mysqllinux.htm

Native PostgreSQL Access (Windows) http://www.windev.com/ts/download/common-modules-20/postgresql.htm

Native PostgreSQL Access (Linux) http://www.windev.com/ts/download/common-modules-20/postgresql-linux.htm

Native MariaDB Access (Windows) http://www.windev.com/ts/download/common-modules-20/mariadb.htm

Native MariaDB Access (Linux) http://www.windev.com/ts/download/common-modules-20/mariadb-linux.htm



WAS Reserved se encontra no diretorio Install do Windev Mobile



Caso opte em usar o Apache deve ser superior a versao 2.4.9
Download do Apache: http://httpd.apache.org/download.cgi


Caso vá usar o IIS, basta estar atualizado o Windows e instalar o mesmo pelo painel de controle.



Obs.: Na internet existe milhares de videos de como fazer esse processo.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 octobre 2015 - 20:59
Diretório do Reserved:

C:\WinDev Mobile 19\Install\WDRServer\WX190PACKRSRV.exe

C:\WinDev Mobile 20\Install\WDRServer\WX200PACKRSRV.exe

:merci:

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 octobre 2015 - 21:05
Obs.:

Não da pra usar o apache e iis, pois os dois não pode pois entram em conflito os servidores de página por usarem a mesma porta
só pode se modificar a porta padrão 80 de um deles para outra porta.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 08 octobre 2015 - 21:15
Links Complementar de estudos:

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/292-aplicativo-armazenamento-fotos-funcionarios/read.awp…

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
______________________________________________
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 03 mai 2016 - 21:46
Exemplo de uso do SqlConnectWs

//Sqlconnectws01

ConnectionNum is int

ConnectionNum = SQLConnectWS("http://MyServer/WDSOAPDB_WEB/", ...
"MS Access 97 Database", "", "", "", "ODBC")
IF ConnectionNum <> 0 THEN
// The connection was successful
...
ELSE
// The connection failed: displaying an error message
SQLInfo()
Error("The connection to the data source " + SourceName + ...
" failed." + CR + "Error code: " + ...
SQL.Error + CR + SQL.MesError)
END
// In any case (connection OK or not)
SQLDisconnect()


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 16 juin 2016 - 00:44
Prezados,

Recebi a uma pergunta no meu grupo de estudos do SKYPE, https://join.skype.com/A0gbOukZv3b7, sendo ela a seguinte:

Gostaria de perguntar aos amigos, enviar dados de um celular para gravar diretamente em um servidor hyperfile c/s, poucos registros que somados não dão 1000 caracteres, é muito mais lento que enviar por Webservice?

R.: Olha, uma vez a string definida dentro de um app Android
vc esta colocando o host, banco, user e senha de bandeja para o inimigo
com webservice isso não fica publico
fica compilado no wsdl do projeto do webservice
se fizer a consulta correta a leitura é tão boa quanto imperceptível
não usem o SQLConnectWS é um risco para a segurança dos seus dados.
O webservice é uma segurança que vale a pena para que não ocorra a invasão no seu servidor de dados.
Aplicações Android são totalmente descompiláveis de qualquer linguagem de programação.

Mas SQLConnectWS é nada mais do um conjunto de Webservices?
R.: SIM!
Mas a senha fica do lado errado,
fica no lado do app Android
e não do lado seguro do servidor.

E ai que esta o problema de segurança,
só daria para fazer com SQLConnectWS

SE

Você usar um SMS Short Number, onde a pessoa ao fazer o cadastro gera no servidor um
token que tendo esse token baixa os dados criptografados para uma tabela local no celular
e com essa chave em outra tabela seria usada para descriptografar a string de conexão
com o banco de dados remoto tem que pensar certinho esse fluxo para não deixar furo
e ter isso muito bem seguro no lado do celular, por isso recomendo, façam Webservices,
vocês estão tirando do app a chave de entrada no seu banco do bandido.

Pensem e reflitam muito bem no Backdoor que vocês estão criando.... eu não faria isso...

É só um conselho, segue quem quiser.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 16 juin 2016 - 02:40
Prezados,

Não aparece na busca do código java decompilado o comando WL, mas um similar JAVA que faz o mesmo processo, pois o Windev Mobile gera código puro nativo java compilado, mas é java, java tem decompiladores aos montes na internet. Não é uma falha do Windev Mobile de não ofuscar isso, mas da linguagem java ter essa abertura de visualizar o seu conteúdo, diferente de uma DLL que é só código de maquina o seu conteúdo, totalmente ilegível. Mas o APP java é totalmente legível, uma por ser interpretado pela JVM e depois executada, por isso não pode ser binário code o app totalmente e aqui que mora o detalhe e o diabo. Pois ate o arquivo .dex que é compilado eu decompilo de um app... imagine, não sobra nada que eu não leia do código fonte de um projeto Android, todas as regras de negocio estão expostas se elas não forem usadas com um Webservice, você abre o jogo para a concorrência. Por isso eu afirmo, USEM WEBSERVICE, pois existe muitas Vírgulas e MAS ao usar o comando SQLConnectWS.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 25 juillet 2016 - 23:31
EXEMPLOS:

//Help: http://doc.pcsoft.fr/en-US/?3072005&name=sqlconnect_function
ResSQL = SQLExec("SELECT * FROM INV", "QRY1")
IF ResSQL = False THEN
SQLInfo("QRY1")
Info("SQL error: " + SQL.MesError)
ELSE
SQLTable("QRY1", TABLE_Table1)
END
SQLClose("QRY1")
// Conexão remota com o MySQL database
Connexão = SQLConnect("192.168.1.51", "User", "Password", "test", "MySQL")



//SQLInfo() ou SQLError()
//Help: http://doc.windev.com/en-US/?3072028&product=WD&productversion=XXA150056M
Exemplo:
ResSQL = SQLExec("SELECT * FROM INV", "QRY1")
IF ResSQL = False THEN
SQLInfo("QRY1")
Info("SQL error: " + SQL.MesError)
ELSE
SQLTable("QRY1", TABLE_Table1)
END
SQLClose("QRY1")


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 26 juillet 2016 - 00:19
REQUISITOS BÁSICOS PARA UM WEBSERVICE SOAP OU REST:

- Instalar e Configurar o IIS ou Apache

- Instalar e configurar o WAS reserved ou a versão FULL

- Configurar o Firewall

- Configurar o antivírus para aceitar os programas e drivers em execução como seguros

- Verificar as portas se nao estao sendo usadas por outros programas

- Instalar o banco de dados exemplo hfsql ou mysql... (mssqlserver, oracle, db2, as/400 sao drivers nativos pagos)

- Instalar o gerenciador de banco de dados SGDB, Center Hfsql ou phpmyadmin, workbank...

- Instalar o Driver Nativo, exemplo MySql da pcsoft

- Instalar o Noip ou contratar um IP Fixo ou um host server Windows ou Linux com acesso as configurações e execução de comandos e deixar o WAS rodando

- roteador da internet, criar o alias da porta :8081 para quando usar o endereço dns do seu noip ou do seu ip fixo seja roteado para o seu servidor no ip da classe C tipo 192.168.1.100 e o IIS ou Apache abra a sua página ou o seu webservice SOAP ou REST de qualquer lugar do planeta.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 26 juillet 2016 - 00:32
Qualquer dúvida entre em contato

Skype adrianoboller

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Message modifié, 26 juillet 2016 - 00:33