[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