PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 25 → Wx - Funcionamento do Groupware com o driver nativo do Ms SQL Server
Wx - Funcionamento do Groupware com o driver nativo do Ms SQL Server
Débuté par adrianoboller, 15 sep. 2015 15:16 - 7 réponses
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 15 septembre 2015 - 15:16
Para integrar o GroupWare com o Ms SQL Server

Coloque em global do Projeto o seguinte código:

ConexaoGpw is Connection

IF NOT gpwOpenConnection(conexaoGpw,ConfiguracoesBancoDados.NomeUsuarioBD,ConfiguracoesBancoDados.SenhaBanco,ConfiguracoesBancoDados.NomeServidor,ConfiguracoesBancoDados.NomeBancoDados,hAccessHFClientServer,hOReadWrite)

THEN

Info("Falha na Conexão com o Grupo de Usuários"+CR+HErrorInfo())

EndProgram()

END


Meu muito obrigado ao Marco Antonio - Capitao Gancho pelo exemplo de código

[ ]´s

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 15 septembre 2015 - 15:23
ConexaoGpw is Connection

IF NOT gpwOpenConnection(conexaoGpw, ConfiguracoesBancoDados.NomeUsuarioBD, ConfiguracoesBancoDados.SenhaBanco, ConfiguracoesBancoDados.NomeServidor, ConfiguracoesBancoDados.NomeBancoDados, hAccessHFClientServer, hOReadWrite) THEN

Info("Falha na Conexão com o Grupo de Usuários"+CR+HErrorInfo())

EndProgram()

END


by Marco Antonio Machado
skype marco_machado
+551532516769

Reencaminhei para ficar mais legivel, precisava ter no forum um botao EDITAR.

--
Adriano Jose Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
______________________________________________
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 16 novembre 2016 - 16:48
//Conexão com o bando de dados

//Variaveis
Usuario, Senha, Servidor, Porta, Instancia, BancoDados is string

//Webservice
//Consumir Webservice e alimentar as váriaveis: Usuario, Senha, Servidor, Porta, Instancia, BancoDados
// Código de leitura dos paramentros do servidor
//
IF Usuario <> "" AND Senha <> "" AND Servidor <> "" AND Porta <> "" AND Instancia <> "" AND BancoDados <> "" THEN

//Descriptografar dados do Webservice
Usuario = Uncrypt(Usuario,"123456789",cryptAnsi+compressLZW+cryptRC516,encodeBASE64)
Senha = Uncrypt(Senha,"123456789",cryptAnsi+compressLZW+cryptRC516,encodeBASE64)
Servidor = Uncrypt(Servidor,"123456789",cryptAnsi+compressLZW+cryptRC516,encodeBASE64)
Porta = Uncrypt(Porta,"123456789",cryptAnsi+compressLZW+cryptRC516,encodeBASE64)
Instancia = Uncrypt(Instancia,"123456789",cryptAnsi+compressLZW+cryptRC516,encodeBASE64)
BancoDados = Uncrypt(BancoDados,"123456789",cryptAnsi+compressLZW+cryptRC516,encodeBASE64)

//Groupware
ConexaoGpw is Connection

IF NOT gpwOpenConnection(ConexaoGpw, Usuario, Senha, Servidor, BancoDados, hNativeAccessSQLServer, hOReadWrite) THEN

Info("Falha na Conexão com o banco de dados: "+CR+HErrorInfo())

EndProgram()

ELSE

Info("Conexão realizada com sucesso!")

END

END


--
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 655 messages
Popularité : +175 (223 votes)
Posté le 28 novembre 2016 - 20:32
//Conexao
ok1, ok2 is boolean

myConn is Connection
myConn..Provider = hNativeAccessSQLServer
myConn..User = "adriano"
myConn..Password = "adriano@2016"
myConn..Source = "192.168.0.1\Projeto01"
myConn..Database = "Projeto01"
myConn..Access = hOReadWrite

ok1 = HOpenConnection(myConn)

ok2 = gpwOpenConnection(myConn)

IF ok1 = True AND ok2 = True

IF gpwInitAnalysis() = False THEN
Error(ErrorInfo())
ELSE
Info("Conexão ok com o banco de dados SQL Server e ativou o groupware")
END

END

NextTitle("Atenção")
IF ok = False THEN

Info("Falha ao tentar conectar no Servidor")

ELSE

Info("Conectou com sucesso no banco de dados!")

END


--
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é, 28 novembre 2016 - 20:42
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 29 novembre 2016 - 12:17
Prezados,

Um aplicativo que está usando o groupware do usuário pode ser usado com um outro banco de dados diferente do HFSQL usando os Drivers Nativos Acesso a Base de Dados. Para que um aplicativo que esteja usando o groupware funcione com um Driver Nativo de Acesso, o groupware do usuário deve ser configurado para usar os arquivos de dados encontrados no servidor.

Como proceder para usar os arquivos de groupware de usuários com um Native Access:

Menu Workshop, Groupware, No painel "Project", no grupo "Project", clique em "User groupware".

ATENÇÃO:
Na guia "Execução", selecione "Execução manual"

ATENÇÃO:
O groupware do usuário "NÃO DEVE SER INICIADO" no modo "Execução automática" em seu aplicativo.

Selecione as diferentes opções do groupware do usuário e valide a janela.

No código da procedure de inicialização do projeto é gpwOpenConnection para descrever a conexão com o banco de dados manipulado por um Native Access.

//Driver nativo MS SQL Server
ok1, ok2 is boolean

myConn is Connection
myConn..Provider = hNativeAccessSQLServer
myConn..User = "adriano"
myConn..Password = "adriano@2016"
myConn..Source = "192.168.0.1\Projeto01"
myConn..Database = "Projeto01"
myConn..Access = hOReadWrite

ok1 = HOpenConnection(myConn)

ok2 = gpwOpenConnection(myConn)

IF ok1 = True AND ok2 = True

IF gpwInitAnalysis() = False THEN
Error(ErrorInfo())
ELSE
Info("Conexão ok com o banco de dados SQL Server e ativou o groupware")
END

END

NextTitle("Atenção")
IF ok = False THEN

Info("Falha ao tentar conectar no Servidor")

ELSE

Info("Conectou com sucesso no banco de dados!")

END


ATENÇÃO:
As senhas definidas para os arquivos de dados do groupware do usuário são ignoradas.

ATENÇÃO:
Use gpwOpen sem especificar o PATH caminho dos arquivos de dados (ALTERE TIRE O PATH).

A notação dos diretórios não existe neste caso.

: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é, 29 novembre 2016 - 12:20
Membre enregistré
3 655 messages
Popularité : +175 (223 votes)
Posté le 02 décembre 2016 - 17:12
SEGREDO

Faça uma página inicial ou uma tela de splash no caso do windev

Não coloque no global do projeto, é um erro por no inicio do projeto, descobri da pior forma, abra uma pagina de

Bem-vindo ao seu projeto

Essa que vai dai chamar a tela do login do groupware.

PAGE_INDEX ou Win_Index





Nela coloque um botao e coloque o código abaixo:

//Pode ser no caso do Windev no open da janela do splash

CODE:

Connect("Server")




CRIE UM PROCEDURE LOCAL

CODE:

Procedure Connect(ServerLocal)

ok, ok1, ok2 is boolean

MeuProjetoMyConnect is Connection

MeuProjetoMyConnect..Provider = hNativeAccessSQLServer

IF ServerLocal = "SERVER"

MeuProjetoMyConnect..User = "integracao-wd"
MeuProjetoMyConnect..Password = "MeuProjeto@2016**"
MeuProjetoMyConnect..Source = "192.168.0.217\MeuProjeto360"
MeuProjetoMyConnect..Database = "MeuProjeto360"

ELSE

MeuProjetoMyConnect..User = "integracao"
MeuProjetoMyConnect..Password = "MeuProjeto@2016**"
MeuProjetoMyConnect..Source = "192.168.0.162\MeuProjeto360"
MeuProjetoMyConnect..Database = "MeuProjeto360"

END

MeuProjetoMyConnect..Access = hOReadWrite

MeuProjetoMyConnect..CursorOptions = hClientCursor

ok1 = HOpenConnection(MeuProjetoMyConnect)

ok2 = gpwOpenConnection(MeuProjetoMyConnect)

IF ok1 = True AND ok2 = True

IF gpwInitAnalysis() = False THEN

Info("Falha ao tentar conectar no Servidor" + ErrorInfo())

ELSE

ok = True

Info("Conexão ok com o banco de dados SQL Server e ativou o groupware")

PageDisplay(PAGE_GPU_Login,False) //se for webdev

//ou open(Win_index) // se for Windev

END

END


Simples assim!...
Pois sempre funcionou!

Agora voce deve entrar no menu Workshop

Para isso click nesse botão e na opção de Menu Workshop:





Ao entra na opção Workshop clique na opção do menu Groupware





a) Marque a 3.a Opção:

CUSTOM USER GROUPWARE





b) Escolher na opção RUNTIME mude para NÃO RODAR AUTOMATICO, PARA "RODAR MANUAL" O SCRIPT DE SEGURANÇA, escolha:

MANUAL START





EM SEGUIDA

No caso do Webdev, agora sim... voce pode usar o bootstrap integrado ao groupware e modificar as telas a sua escolha.

E no caso do Windev é a mesma coisa as telas podem ser customizadas.

Agora vamos para o Componente interno e vamos mudar as tabelas de HFSQL Classic para o Driver Nativo do MS SQL Server ou Oracle ou otra base de dados com recursos de acesso direto via DLL, ODBC, OleDB.





Click com o botão direito do mouse e no menu popup do Analysis do componente Groupware.





Defina a base dados com o driver que vai usar, altere de HFSQL para o driver do seu banco de dados.





As tabelas vão mudar da cor Marrom para Azul no caso do Driver Nativo MS SQL Server

Vai ficar assim a sua análise do Groupware:





Sendo assim as tabelas ao executar a primeira vez o script do groupware cria sozinho as suas tabela e ja da a sua primeira carga inicial.





Sendo assim o sistema vai exibir a tela de login e acesso as configurações do groupware ou a tela padrao do sistema:





Usa dai para logar na primeira vez SUPERVISOR e SUPERVISOR

Bom sendo assim concluo o tutorial, passei dias tentando entender o processo corretamente.

Espero que a comunidade use essas informações e complemente esse post aqui do forum oficial da PCSOFT.

: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 655 messages
Popularité : +175 (223 votes)
Posté le 06 décembre 2016 - 19:25
Prezados,

Para fazer com que funcione com o driver nativo o acesso inicial com supervisor, supervisor; teremos que fazer umas mudanças.

1 - Aumentar o tamanho do campo Password de 50 para 255 da tabela GPU_User


2 - Fazer esse codigo para conectar

Vejamos:

Procedure Connect(ServerLocal)

ok, ok1, ok2 is boolean

AsplanMyConnect is Connection

AsplanMyConnect..Provider = hNativeAccessSQLServer

IF Upper(ServerLocal) = "SERVER"

AsplanMyConnect..User = "adriano"
AsplanMyConnect..Password = "**adriano**"
AsplanMyConnect..Source = "200.168.0.2\adriano"
AsplanMyConnect..Database = "adriano"

ELSE

AsplanMyConnect..User = "adriano"
AsplanMyConnect..Password = "**adriano**"
AsplanMyConnect..Source = "192.168.0.1\adriano"
AsplanMyConnect..Database = "adriano"

END

AsplanMyConnect..Access = hOReadWrite

AsplanMyConnect..CursorOptions = hClientCursor

ok1 = HOpenConnection(AsplanMyConnect)

ok2 = gpwOpenConnection(AsplanMyConnect)

IF ok1 = True AND ok2 = True

IF gpwInitAnalysis() = False THEN

Info("Falha ao tentar conectar no Servidor" + ErrorInfo())

ELSE

ok = True


IF HNbRec(GPU_User) = 0 AND HNbRec(GPU_Options) = 0

GPU_Options.EncryptionPWD = 0 // <---------------------------- mude para zero
HAdd(GPU_Options)

//Criando o Usuario SUPERVISOR
GPU_User.FirstName = "SUPERVISOR"
GPU_User.Name = "SUPERVISOR"
GPU_User.Login = "SUPERVISOR"
GPU_User.Password = "SUPERVISOR" /// crypt nova
GPU_User.Phone = 41999491800
GPU_User.Supervisor = True
HAdd(GPU_User)

END

//Info("Conexão ok com o banco de dados SQL Server e ativou o groupware")

PageDisplay(PAGE_GPU_Login,False)

END

END


Esse codigo acima inicializa a carga das tabelas do Groupware

Não pode usar o gpwEncryptedPasswords() pois ele usa uma criptografia para a base de dados HFSQL.



3 - Mudar para usar a nossa criptografia:

Procedure Criptografica(Texto, CD)

IF Texto <> "" AND CD = "C"

Texto = StringToInteger(Texto)

Texto = InvertString(Texto)

Texto = Crypt(Texto, "BatatinhaQuandoNasceEspalhaRamaPeloChao", cryptRC516+compressLZW, encodeBASE64)

ELSE IF Texto <> "" AND CD = "D"

Texto = Uncrypt(Texto, "BatatinhaQuandoNasceEspalhaRamaPeloChao", cryptRC516+compressLZW, encodeBASE64)

Texto = InvertString(Texto)

Texto = IntegerToString(Texto)

ELSE

Info("Nenhum valor informado na senha!")

END

RESULT Texto



Procedure IntegerToString(Texto)

sNovoTexto, sNovo is string = ""

IF Texto <> "" THEN

nTotal is int = Length(Texto) / 3
nPos is int = 1

LOOP (nTotal)

sNovo = Middle(Texto, nPos, 3)

sNovoTexto += Charact( sNovo )

nPos += 3

END

END

RESULT sNovoTexto



Procedure InvertString(Texto)

sNovoTexto is string = ""

IF Texto <> "" THEN

nTotal is int = Length(Texto)
nPos is int = nTotal

LOOP (nTotal)

sNovoTexto += Middle(Texto,nPos,1)

nPos -= 1

END

END

RESULT sNovoTexto



Procedure StringToIntegerAsplan360(Texto)

sNovoTexto is string = ""

IF Texto <> "" THEN

nTotal is int = Length(Texto)
nPos is int = 0

LOOP (nTotal)

nPos += 1

sNovoTexto += NumToString( Asc( Middle(Texto, nPos, 1) ), "03.00f" )

END

END

RESULT sNovoTexto


--
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 655 messages
Popularité : +175 (223 votes)
Posté le 11 novembre 2017 - 18:21




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