[firebase-br] Duvidazinha
NextCorp Informatica
nextcorp em terra.com.br
Qua Mar 1 10:09:32 -03 2006
Caro Magno
Utilizo esta função para passar os parametros de configuracao
WinExecAndWait32('Executavel'+' '+wdatabase+' '+wusuario+' '+wsenha,SW_SHOW);
A função está abaixo, de um colega.
{
* Executa um arquivo externo, e aguarda que ele seja encerrado
* para continuar a execução normal }
function WinExecAndWait32(FileName: String; Visibility: integer): longword;
{
FileName: nome do arquivo (não requer a extensão, e faz a pesquisa
na variável 'Path' do sistema
Visibility: use SW_SHOW ;-)
}
var
zAppName: array[0..512] of char;
zCurDir: array[0..255] of char;
WorkDir: String;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if CreateProcess( nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then
begin
repeat
GetExitCodeProcess(ProcessInfo.hProcess,result);
{
A linha abaixo (ProcessMessages) evita que o seu programa
fique "travado" durante a execução do aplicativo.
}
Application.ProcessMessages;
{
Esta estrutura 'If' permite que seja implementado um botão de
cancelamento dentro do programa. Se não utilizar, apague a estrutura
inteira (o If e o TerminateProcess)
}
// if FormularioPrincipal.Cancelar then
// TerminateProcess(ProcessInfo.hProcess,Result);
until (Result = 0);
end;
end;
No formactivate do exe chamado, tenho o seguinte tratamento para os parametros passados.
{passo os parametros database, usuario, senha
para conectar com o login informado la}
{if ParamCount = 0 then
begin
ShowMessage('Este sistema não pode ser executado diretamente !!!');
Application.Terminate;
Close;
end
else
begin}
with dmDados do
begin
// para ver o erro ShowMessage('Banco: '+ParamStr(1)+' User: '+ParamStr(2)+' Senha:'+ParamStr(3));
Try
IB_Connection1.Disconnect;
IB_Connection1.DatabaseName:= ParamStr(1);
IB_Connection1.Username:= ParamStr(2);
IB_Connection1.Password:= 'ParamStr(3);
IB_Connection1.CharSet:= 'WIN1252';
IB_Connection1.LoginPrompt:= False;
IB_Connection1.Connect;
Except
MessageDlg('Erro de conexão ao Banco de Dados. Verifique seu nome de usuário e senha
!!!'+#13+ParamStr(1)+#13+ParamStr(2), mtError, [mbOk], 0);
dmDados.IB_Connection1.Disconnect;
Application.Terminate;
Close;
End;
end;
// end;
Atenciosamente
Washington A. Müller da Silva
#####################
NextCorp Informática Ltda
www.nextcorp.com.br
nextcorp em terra.com.br
0 xx (51)-3589-3690
####################
----- Original Message -----
From: "Magno" <magnoscosta em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, March 01, 2006 8:24 AM
Subject: Re: [firebase-br] Duvidazinha
Manda ai velhinho,.... talvez seja isso mesmo..
----- Original Message -----
From: "NextCorp Informatica" <nextcorp em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, February 28, 2006 4:47 PM
Subject: Re: [firebase-br] Duvidazinha
Caro Magno
Depois de muito quebrar, fiz isto para a conexao entre 3 executaveis
diferentes, ou seja, tenho um unico form de login e depois um
popmenu que chama outros executaveis, sem precisar conectar novemante.
Não sei se e isto que vc está procurando, se for te passo em pvt.
Atenciosamente
Washington A. Müller da Silva
#####################
NextCorp Informática Ltda
www.nextcorp.com.br
nextcorp em terra.com.br
0 xx (51)-3589-3690
####################
----- Original Message -----
From: "Magno" <magnoscosta em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, February 28, 2006 11:58 AM
Subject: [firebase-br] Duvidazinha
Amigos... nao sei se minha pergunta pode ser um pouco ignorante.... mas....
Existe algum meio de passar uma variável global pro firebird ????
Tipo.. qdo eu abrisse a conexão passasse ela e ai pudesse usar em todas as
tabelas sem precisar ficar passando novamente....
Existe isso???
At. Magno
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 268.1.1/271 - Release Date: 28/02/2006
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 268.1.1/271 - Release Date: 28/02/2006
Mais detalhes sobre a lista de discussão lista