Ola para todos,
necessito urgente da forma de efetuar uma conexão com o banco de dados sem que seja apresentada a tela de conexão default do FORMS.
Tentei o comando CONNECT DB user/pwd:instance, mas não deu certo.
valeu.
CONEXAO AUTOMATICA
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
você pode criar um atalho do runtime. Nele, você coloca o seguinte onde diz "Objeto:"
Ou seja, com isso, você passa a string de CONEXAO direto pro Runtime.
Se você não quer que a senha fique visível como acima, eu já vi um caso assim:
* Eles criaram um usuário chamado ACESSO com senha ACESSO.
Esse usuário não tem direito de fazer NADA, apenas um GRANT de EXECUTE em uma função que validava a senha. Ou seja, mesmo que alguém visse a senha, não ia conseguir fazer nada...
Outra forma do Forms não perguntar o login, é você criar uma Trigger ON-LOGON no forms com NULL dentro. (dessa forma, ele não se conecta com o banco)... Pelo menos, você pode fazer um esquema pra ele se conectar com CONNECT.
Se não for isso, explica aí o que não deu certo!!!! falowww
D:\oracle8\BIN\ifrun60.EXE module=seu_form userid=usuario@senha/seu_banco
Se você não quer que a senha fique visível como acima, eu já vi um caso assim:
* Eles criaram um usuário chamado ACESSO com senha ACESSO.
Esse usuário não tem direito de fazer NADA, apenas um GRANT de EXECUTE em uma função que validava a senha. Ou seja, mesmo que alguém visse a senha, não ia conseguir fazer nada...
Outra forma do Forms não perguntar o login, é você criar uma Trigger ON-LOGON no forms com NULL dentro. (dessa forma, ele não se conecta com o banco)... Pelo menos, você pode fazer um esquema pra ele se conectar com CONNECT.
Se não for isso, explica aí o que não deu certo!!!! falowww
-
- Rank: Estagiário Sênior
- Mensagens: 10
- Registrado em: Qui, 07 Jul 2005 9:45 pm
- Localização: são Paulo
Almir J. Gomes
Developer
Developer
cara, agradeco desde sua boa vontade de tentar me ajudar mas,
o que eu quero e o seguinte:
Fazer a conexao com o banco atraves de um comando CONNECT assim que o forms for executado pois, na minha aplicacao estou desprezando o controle de acesso do banco e criando um controle de acesso a tabelas internamente da aplicacao devido as necessidades do usuario. Eu dei uma olhada no help do forms no comando CONNECT mas, não surtiu o efeito desejado ou seja. Se você tiver alguma sugestao para isto me ajudaria bastante.
valeu.
o que eu quero e o seguinte:
Fazer a conexao com o banco atraves de um comando CONNECT assim que o forms for executado pois, na minha aplicacao estou desprezando o controle de acesso do banco e criando um controle de acesso a tabelas internamente da aplicacao devido as necessidades do usuario. Eu dei uma olhada no help do forms no comando CONNECT mas, não surtiu o efeito desejado ou seja. Se você tiver alguma sugestao para isto me ajudaria bastante.
valeu.
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Seg, 10 Abr 2006 5:00 pm
- Localização: Guarujá - SP
Ola para todos,
Eu também estou tentando fazer algo parecido, mas não consigo, na verdade eu preciso fazer um form personalizado usando on-logon, ou seja, transformar aquela tela do on-logon do oracle para uma que eu quero fazer.
Sera que alguém pode me ajudar nesse caso.
Obrigado pela paciencia, fico no aguardo!!!
Edgard Thomas
Eu também estou tentando fazer algo parecido, mas não consigo, na verdade eu preciso fazer um form personalizado usando on-logon, ou seja, transformar aquela tela do on-logon do oracle para uma que eu quero fazer.
Sera que alguém pode me ajudar nesse caso.
Obrigado pela paciencia, fico no aguardo!!!
Edgard Thomas
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Tutorial como fazer o forms conectar direto com o banco
Como fazer uma tela de LOGIN
É claro que você pode colocar mais segurança nesse código, por exemplo, criar um contador onde proibe errar mais de 3 vezes a senha etc.
Como fazer pra chamar?
Desta forma, você não eliminou o problema do forms pedir a string de conexão. Para isso, crie um atalho passando para o runtime um login/senha apenas para conexão. (Pode ser um login que não tem privilégio de fazer nada, nem SELECT em nenhum objeto).
Algo assim no atalho:
Desta forma, você se conecta no banco direto com a senha do usuário!
Como fazer uma tela de LOGIN
- Coloque os campos de login e senha num canvas.
O Campo SENHA você muda a propriedade "Conceal Data" para YES, a fim de preencher com *** a senha. - No botão OK, teste se conectou da seguinte forma:
LOGOUT;
LOGON(:bloco.usuario, :bloco.senha||'@'||:bloco.banco, FALSE );
if form_failure then
... trata erro
end if;
É claro que você pode colocar mais segurança nesse código, por exemplo, criar um contador onde proibe errar mais de 3 vezes a senha etc.
Como fazer pra chamar?
Desta forma, você não eliminou o problema do forms pedir a string de conexão. Para isso, crie um atalho passando para o runtime um login/senha apenas para conexão. (Pode ser um login que não tem privilégio de fazer nada, nem SELECT em nenhum objeto).
Algo assim no atalho:
C:\oracle\BIN\ifrun60.EXE module=<seu_form> userid=login/senha@banco
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Seg, 10 Abr 2006 5:00 pm
- Localização: Guarujá - SP
OBRIGADO pelo interesse dr_gori !!!
Eu tenho algumas dúvidas, eu tinha pesquisado antes de lançar a pergunta aqui no forum e já tinha feito isso abaixo, até mesmo porque você já tinho falado com algumas pessoas:
Mas por exemplo, fiz isso que você me falou, e quando tento rodar, mesmo eu colocando o logo que não existe, ele diz que o login funcionou. Eu só não tinha tentado com LOGOUT; mas eu tentei também e não funcionou.
Já aconteceu isso com você? porque da maneira que eu penso, se eu digitar um login errado vai acusar pelo FORM_FAILURE que falhou
Mas tudo isso esta no botao, e na trigger do form no on-logon eu coloquei null;
para testar fiz isso abaixo:
você me diz que eu deveria fazer isso abaixo:
mas porque eu devo testar usando uma conexão, o grande lance não é testar sem usar a conexão, a conexão vai vir agora assim que aparecer o form, desculpa a burrice, mas eu to com estas dúvidas, espero que você possa me ajudar novamente!!!
Obrigado pela paciência!!!
Thomas
Eu tenho algumas dúvidas, eu tinha pesquisado antes de lançar a pergunta aqui no forum e já tinha feito isso abaixo, até mesmo porque você já tinho falado com algumas pessoas:
DECLARE
cn VARCHAR2(10);
ALERT_BUTTON NUMBER;
BEGIN
cn := 'teste';
IF :login.txt_usuario is not null and :login.txt_senha is not null THEN
--LOGOUT;
LOGON(:login.txt_usuario,:login.txt_senha || '@' || cn, FALSE);
IF FORM_FAILURE THEN
SET_ALERT_PROPERTY('ALL_OK', ALERT_MESSAGE_TEXT, 'O Login Não Funcionou!') ;
alert_button := show_alert('ALL_OK') ;
ELSE
SET_ALERT_PROPERTY('ALL_OK', ALERT_MESSAGE_TEXT, 'O Login Funcionou!') ;
alert_button := show_alert('ALL_OK') ;
END IF;
END IF;
END;
Mas por exemplo, fiz isso que você me falou, e quando tento rodar, mesmo eu colocando o logo que não existe, ele diz que o login funcionou. Eu só não tinha tentado com LOGOUT; mas eu tentei também e não funcionou.
Já aconteceu isso com você? porque da maneira que eu penso, se eu digitar um login errado vai acusar pelo FORM_FAILURE que falhou
Mas tudo isso esta no botao, e na trigger do form no on-logon eu coloquei null;
para testar fiz isso abaixo:
C:\orant\BIN\ifrun60.EXE hrs_trabalhadas.fmx
C:\oracle\BIN\ifrun60.EXE module=<seu_form> userid=login/senha@banco
Obrigado pela paciência!!!
Thomas
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Seg, 10 Abr 2006 5:00 pm
- Localização: Guarujá - SP
Mais uma coisa
Eu vi tambem que você me enviou um endereço para eu pesquisar sobre esse assunto abaixo em que você fala para a pessoa o seguinte:
Outra forma do Forms não perguntar o login, é você criar uma Trigger ON-LOGON no forms com NULL dentro. (dessa forma, ele não se conecta com o banco)... Pelo menos, você pode fazer um esquema pra ele se conectar com CONNECT.
Bom, agora eu fiquei na duvida se o que eu fiz ate agora foi uma bagunça fazendo a tela de login e usando uma trigger on-logon com null;
Pelo que entendi você diz que temos duas formas de fazer ou usando do primeiro jeito, que é fazer a tela de login personalizada sem a trigger on-logon e executa-la desta forma
A outra forma é que eu não entendi direito, tenho que usar conect?
Espero que possa me ajudar!!!
Até mais... obrigado pela força
Eu vi tambem que você me enviou um endereço para eu pesquisar sobre esse assunto abaixo em que você fala para a pessoa o seguinte:
Outra forma do Forms não perguntar o login, é você criar uma Trigger ON-LOGON no forms com NULL dentro. (dessa forma, ele não se conecta com o banco)... Pelo menos, você pode fazer um esquema pra ele se conectar com CONNECT.
Bom, agora eu fiquei na duvida se o que eu fiz ate agora foi uma bagunça fazendo a tela de login e usando uma trigger on-logon com null;
Pelo que entendi você diz que temos duas formas de fazer ou usando do primeiro jeito, que é fazer a tela de login personalizada sem a trigger on-logon e executa-la desta forma
C:\oracle\BIN\ifrun60.EXE module=<seu_form> userid=login/senha@banco
A outra forma é que eu não entendi direito, tenho que usar conect?
Espero que possa me ajudar!!!
Até mais... obrigado pela força
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Seg, 10 Abr 2006 5:00 pm
- Localização: Guarujá - SP
Dr_Gori
Só para melhorar uma das minhas dúvidas que assim que eu li o que escrevi, nem eu entendi
***********************************
mas porque eu devo testar usando uma conexão, o grande lance não é testar sem usar a conexão, a conexão vai vir agora assim que aparecer o form, desculpa a burrice, mas eu to com estas dúvidas, espero que você possa me ajudar novamente!!!
***********************************
O que eu quis dizer é que eu fazendo a tela de login é para ela aparecer sem que eu não usa-se nenhuma conexão por enquanto, aparecendo a tela, ai sim, depois de digitar o usuario e senha e clicando no botão, vou ser informado se a conexão funcionou ou não (FORM_FAILURE)!!!
FOI ISSO QUE QUIS DIZER
Valeu!!!
Só para melhorar uma das minhas dúvidas que assim que eu li o que escrevi, nem eu entendi
***********************************
mas porque eu devo testar usando uma conexão, o grande lance não é testar sem usar a conexão, a conexão vai vir agora assim que aparecer o form, desculpa a burrice, mas eu to com estas dúvidas, espero que você possa me ajudar novamente!!!
***********************************
O que eu quis dizer é que eu fazendo a tela de login é para ela aparecer sem que eu não usa-se nenhuma conexão por enquanto, aparecendo a tela, ai sim, depois de digitar o usuario e senha e clicando no botão, vou ser informado se a conexão funcionou ou não (FORM_FAILURE)!!!
FOI ISSO QUE QUIS DIZER
Valeu!!!
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Seg, 10 Abr 2006 5:00 pm
- Localização: Guarujá - SP
Neste endereço também tem a mesma coisa que estou tentando fazer, só que a moça encontra a mesma dificuldade!!!
http://historico.org/message.php/list/oracle_br/id/5876
Se você quiser dar uma olhadinha, derrepente ela se fez entender melhor do que eu!
Abraços
Te aguardo,
Até mais!!!
http://historico.org/message.php/list/oracle_br/id/5876
Se você quiser dar uma olhadinha, derrepente ela se fez entender melhor do que eu!
Abraços
Te aguardo,
Até mais!!!
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Seg, 10 Abr 2006 5:00 pm
- Localização: Guarujá - SP
Bom dia a todos...
Bom, consegui achar o que eu queria na internet, abaixo todo o código usado para fazer isso caso alguém se interesse, obrigado, até mais!
Personalizando a Tela Do Logon
O LOGON_SCREEN embutido chama para cima o default Forma tela do logon para capturar o username, senha, e conecta fio. Entretanto, você pode também usar uma tela do logon personalizada. O seguinte tutorial cria um formulário que pode estar utilizado como uma tela do logon de reposição de qualquer formulário. NOTA: Sistema Coordenado é assumido ser pixel.
1. Crie um novo módulo de formulários e muda unicamente as seguintes propriedades:
2. Modifique unicamente as seguintes propriedades para WINDOW0 (v4.0, Cria esta janela):
3. Crie um novo canvas (v4.0, Modifica CANVAS0) e modifica unicamente o seguinte propriedades:
4. Modifique unicamente as seguintes propriedades ao LOGON_WINDOW:
5. Crie um novo bloco e modifica unicamente as seguintes propriedades:
6. Crie três itens de texto no canvas LOGON_CANVAS ao LOGON_BLOCK DE bloco com propriedades como follows:
7. Crie dois empurra botões no canvas LOGON_CANVAS ao LOGON_BLOCK DE bloco com propriedades como segue:
8. Código o seguinte programa units:
9. Código os seguintes gatilhos:
On-Logon (Form Level)
When-New-Form-Instance (Form Level)
When-Button-Pressed (Item Level, on LOGON_BLOCK.CANCEL)
When-Button-Pressed (Item Level, on LOGON_BLOCK.LOGON)
When-Window-Activated (Form Level)
10. Gere e salva isto form.
11. Crie um novo formulário. Este formulário é um exemplo de como para usar o
logon forma que tem somente sido criado.
12. Crie um bloco de default, dando este formulário alguns itens.
13. Código o Em-logon gatilho como segue:
Esta vontade completa o coding ao formulário principal. Quando o formulário agora
requer uma conexão ao banco de dados, isto usará isto personalizou
tela do logon ao invés do um de default de Formulários.
Bom, consegui achar o que eu queria na internet, abaixo todo o código usado para fazer isso caso alguém se interesse, obrigado, até mais!
Personalizando a Tela Do Logon
O LOGON_SCREEN embutido chama para cima o default Forma tela do logon para capturar o username, senha, e conecta fio. Entretanto, você pode também usar uma tela do logon personalizada. O seguinte tutorial cria um formulário que pode estar utilizado como uma tela do logon de reposição de qualquer formulário. NOTA: Sistema Coordenado é assumido ser pixel.
1. Crie um novo módulo de formulários e muda unicamente as seguintes propriedades:
Name: LOGON
Title: LOGON (v4.5)
Name: LOGON_WINDOW
Width: 126
Height: 108
Title: Logon
Style: Dialog
Modal: TRUE
Fixed Size: TRUE
Iconifiable: FALSE
Inherit Menu: FALSE
Zoomable: FALSE
Name: LOGON_CANVAS
Window: LOGON_WINDOW
Width: 126
Height: 108
View: LOGON_CANVAS
Block Name: LOGON_BLOCK
Name: USERNAME
X Position: 12
Y Position: 8
Width: 102
Height: 18
Name: PASSWORD
X Position: 12
Y Position: 31
Width: 102
Height: 18
Secure: TRUE
Name: CONNECT
X Position: 12
Y Position: 54
Width: 102
Height: 18
Name: LOGON
X Position: 12
Y Position: 84
Width: 52
Height: 18
Label: Logon
Mouse Navigate: FALSE
Default Button: TRUE
Name: CANCEL
X Position: 72
Y Position: 84
Width: 52
Height: 18
Label: Cancel
Mouse Navigate: FALSE
PROCEDURE leave(status BOOLEAN DEFAULT TRUE) IS
BEGIN
IF status THEN
:global.logged_on := 'TRUE';
ELSE
:global.logged_on := 'FALSE';
END IF;
EXIT_FORM;
END;
PROCEDURE initialize_form IS
un VARCHAR2(30) := GET_APPLICATION_PROPERTY(USERNAME);
pw VARCHAR2(30) := GET_APPLICATION_PROPERTY(PASSWORD);
cs VARCHAR2(30) := GET_APPLICATION_PROPERTY(CONNECT_STRING);
BEGIN
DEFAULT_VALUE('3', 'global.logon_tries');
DEFAULT_VALUE(un, 'global.username');
DEFAULT_VALUE(pw, 'global.password');
DEFAULT_VALUE(cs, 'global.connect_string');
:logon_block.username := :global.username;
:logon_block.password := :global.password;
:logon_block.connect := :global.connect_string;
END;
FUNCTION connect_to RETURN BOOLEAN IS
BEGIN
IF :logon_block.username IS NULL THEN
BELL;
END IF;
LOGON(:logon_block.username,
:logon_block.password||'@'||:logon_block.connect, FALSE);
IF FORM_SUCCESS THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;
On-Logon (Form Level)
LOGON(:logon_block.username,
:logon_block.password||'@'||:logon_block.connect,
FALSE);
initialize_form;
leave(FALSE);
BEGIN
IF connect_to THEN
leave(TRUE);
END IF;
:global.logon_tries := TO_NUMBER(:global.logon_tries) - 1;
IF TO_NUMBER(:global.logon_tries) = '0' THEN
leave(FALSE);
END IF;
END;
DECLARE
screen_height NUMBER;
screen_width NUMBER;
window_height NUMBER;
window_width NUMBER;
BEGIN
IF :SYSTEM.EVENT_WINDOW = 'LOGON_WINDOW' THEN
screen_height := GET_APPLICATION_PROPERTY(DISPLAY_HEIGHT);
screen_width := GET_APPLICATION_PROPERTY(DISPLAY_WIDTH);
window_height := GET_WINDOW_PROPERTY(:SYSTEM.EVENT_WINDOW, HEIGHT);
window_width := GET_WINDOW_PROPERTY(:SYSTEM.EVENT_WINDOW, WIDTH);
SET_WINDOW_PROPERTY('LOGON_WINDOW', X_POS,
(screen_width - window_width)/2);
SET_WINDOW_PROPERTY('LOGON_WINDOW', Y_POS,
screen_height/2 - window_height);
END IF;
END;
11. Crie um novo formulário. Este formulário é um exemplo de como para usar o
logon forma que tem somente sido criado.
12. Crie um bloco de default, dando este formulário alguns itens.
13. Código o Em-logon gatilho como segue:
On-Logon (Form Level)
CALL_FORM('logon', NO_HIDE);
IF :global.logged_on != 'TRUE' THEN
RAISE FORM_TRIGGER_FAILURE;
END IF;
requer uma conexão ao banco de dados, isto usará isto personalizou
tela do logon ao invés do um de default de Formulários.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes