Fonte - Forum - Adriano
Prezados,
Como alterar a conexão ao DB do user Groupware via código, usando servidor A ou servidor B (local/remoto)?
gpwLogin (Função)
Conecta um usuário para um aplicativo que está usando o groupware usuário. Esta função verifica se o usuário está registrado no banco de dados de groupware usuário. Se o usuário é identificado, o aplicativo é iniciado automaticamente usando os direitos definidos para este usuário.
Nota : No janela de login é aberta automaticamente: o login e senha estão diretamente passada em parâmetro para a função. O login e senha poderia ter sido inserido em uma janela de conexão personalizada (veja o exemplo).
gpwLogin: http://doc.pcsoft.fr/en-US/?3041001
// Recuperar o login em uma janela de costume
Entrada é seqüência de
senha é cadeia
aberta ( WIN_ MyLoginWindow , Acesso , senha )
// Verifique o login
n Res é int = gpwLogin ( login , senha )
// Se o login falhar
IF n Res < > gpwOk ENTÃO
LIGAR n Res
CASE gpwError : Erro ( "Erro ao inicializar o groupware." )
CASE gpwUnknownUser : Erro ( "usuário desconhecido". )
CASO gpwInvalidPassword : Erro ( "senha inválida" )
END
EndProgram ()
END
// Recuperar o primeiro nome do usuário
FirstName é cadeia = gpwGetUserInfo ( gpwInfoFirstName )
Informações ( "Bem-vindo" + FirstName )
Entrada é seqüência de
senha é cadeia
aberta ( WIN_ MyLoginWindow , Acesso , senha )
// Verifique o login
n Res é int = gpwLogin ( login , senha )
// Se o login falhar
IF n Res < > gpwOk ENTÃO
LIGAR n Res
CASE gpwError : Erro ( "Erro ao inicializar o groupware." )
CASE gpwUnknownUser : Erro ( "usuário desconhecido". )
CASO gpwInvalidPassword : Erro ( "senha inválida" )
END
EndProgram ()
END
// Recuperar o primeiro nome do usuário
FirstName é cadeia = gpwGetUserInfo ( gpwInfoFirstName )
Informações ( "Bem-vindo" + FirstName )
gpwOpenConnection (Função)
Abre uma conexão com um banco de dados específico de cliente / servidor para gerenciar os arquivos de groupware usuário no modo cliente / servidor. A conexão permanece aberta até o final da aplicação.
gpwOpenConnection é usado para definir e abrir uma conexão para os arquivos de dados de groupware usuário. Para usar a mesma conexão para todos os arquivos de dados do aplicativo, tudo que você tem a fazer é usar HChangeConnection . Em seguida, gpwOpen é utilizado para especificar a localização dos ficheiros de dados utilizados para administrar os direitos, assim como a localização dos ficheiros de dados usados para identificar os utilizadores.
Nota: A partir da versão 19, HFSQL é o novo nome da HyperFileSQL.
// Use os arquivos de groupware usuário com um banco de dados MySQL
IF gpwOpenConnection ( "gpwCt" , "Test" , "PasswordMySQL" , ...
"Apollon_server" , "TEST" , hNativeAccessMySQL ) = False ENTÃO
erro ( ErrorInfo ())
ELSE
// os arquivos de groupware usuário
// são criados automaticamente
// se o usuário tem direitos sobre MySQL.
n Res é int = gpwOpen ()
// Se o login falhar
IF n Res <> gpwOk ENTÃO
LIGAR n Res
CASE gpwError :
Erro ( "Erro na inicialização." , ErrorInfo ())
CASE gpwUnknownUser :
Erro ( "usuário desconhecido". )
CASO gpwInvalidPassword :
Erro ( "senha inválida" )
END
END
// usar a mesma conexão para todos os arquivos de dados
HChangeConnection ( "* " , " gpwCt " )
Traço ( HNbRec ( CEDEX ))
END
IF gpwOpenConnection ( "gpwCt" , "Test" , "PasswordMySQL" , ...
"Apollon_server" , "TEST" , hNativeAccessMySQL ) = False ENTÃO
erro ( ErrorInfo ())
ELSE
// os arquivos de groupware usuário
// são criados automaticamente
// se o usuário tem direitos sobre MySQL.
n Res é int = gpwOpen ()
// Se o login falhar
IF n Res <> gpwOk ENTÃO
LIGAR n Res
CASE gpwError :
Erro ( "Erro na inicialização." , ErrorInfo ())
CASE gpwUnknownUser :
Erro ( "usuário desconhecido". )
CASO gpwInvalidPassword :
Erro ( "senha inválida" )
END
END
// usar a mesma conexão para todos os arquivos de dados
HChangeConnection ( "* " , " gpwCt " )
Traço ( HNbRec ( CEDEX ))
END
// Altere a senha para os arquivos de groupware usuário
// pela programação
// Exemplo com o GPWUSER
Parâmetros da conexão com
CNT_GPWu_HFCS ..Provider = hAccessHFClientServer
CNT_GPWu_HFCS ..User = "UserHFServer"
CNT_GPWu_HFCS ..Password = "PasswordHFServer"
CNT_GPWu_HFCS ..Server = "HFServer"
CNT_GPWu_HFCS ..Database = "GPWu"
CNT_GPWu_HFCS ..CryptMethod = hCryptNo
// Abra o ERRO:
Erro ( HErrorInfo () + CR + ErrorInfo ())
// pela programação
// Exemplo com o GPWUSER
Parâmetros da conexão com
CNT_GPWu_HFCS ..Provider = hAccessHFClientServer
CNT_GPWu_HFCS ..User = "UserHFServer"
CNT_GPWu_HFCS ..Password = "PasswordHFServer"
CNT_GPWu_HFCS ..Server = "HFServer"
CNT_GPWu_HFCS ..Database = "GPWu"
CNT_GPWu_HFCS ..CryptMethod = hCryptNo
// Abra o ERRO:
Erro ( HErrorInfo () + CR + ErrorInfo ())
gpwOpenConnection: http://doc.pcsoft.fr/en-US/?3041007&name=gpwopenconnection_function
Exemplo:
//Para alterar a conexão ao DB do user groupware via código, usando servidor A ou servidor B (local/remoto).
gpwInitAnalysis()
gpwUser is Data Source
CNT_GPWu_HFCS is Connection
sPasswordGPWu is string = "PCSGPW2001"
// Parâmetros da conexão
CNT_GPWu_HFCS..Provider = hAccessHFClientServer
CNT_GPWu_HFCS..User = "UserHFServer"
CNT_GPWu_HFCS..Password = "PasswordHFServer"
CNT_GPWu_HFCS..Server = "HFServer"
CNT_GPWu_HFCS..Database = "GPWu"
CNT_GPWu_HFCS..CryptMethod = hCryptNo
// Abre a conexão
gpwOpenConnection(CNT_GPWu_HFCS)
HChangeConnection(gpwUser,CNT_GPWu_HFCS)
HPass(gpwUser, sPasswordGPWu)
HCreationIfNotFound(gpwUser)
HChangePassword(gpwUser, "TEST")
CASE ERROR:
Error(HErrorInfo() + CR + ErrorInfo())
gpwInitAnalysis()
gpwUser is Data Source
CNT_GPWu_HFCS is Connection
sPasswordGPWu is string = "PCSGPW2001"
// Parâmetros da conexão
CNT_GPWu_HFCS..Provider = hAccessHFClientServer
CNT_GPWu_HFCS..User = "UserHFServer"
CNT_GPWu_HFCS..Password = "PasswordHFServer"
CNT_GPWu_HFCS..Server = "HFServer"
CNT_GPWu_HFCS..Database = "GPWu"
CNT_GPWu_HFCS..CryptMethod = hCryptNo
// Abre a conexão
gpwOpenConnection(CNT_GPWu_HFCS)
HChangeConnection(gpwUser,CNT_GPWu_HFCS)
HPass(gpwUser, sPasswordGPWu)
HCreationIfNotFound(gpwUser)
HChangePassword(gpwUser, "TEST")
CASE ERROR:
Error(HErrorInfo() + CR + ErrorInfo())