Olá Pessoal, aqui estou para minha primeira Quick Tips e nela vamos falar de um assunto um tanto simples no Delphi, porém eu irei aborar um detalhe interessantes para aqueles que ainda precisam trabalhar com BDE e lançar mão de Stored Procedure.


Bom, sei que muitas pessoas ainda utilizam o BDE para o desenvolvimento de software, em duas empresas que trabalhei deparei com algumas programadores que utilizavam TStoredProc para armazenar informações no Banco de dados. Mas se deparavam com o problema na atualização dos parâmetros do component, de não conseguir criá-lo de forma dinâmica e a utilização do método Prepare. Então segue a dica.


            Muitas programadores acreditam que o Método Prepare no caso do BDE serve para preparar o script para ser utilizado no banco de dados, mas não é isso que ocorre na verdade este método é utilizado para preparar sim o Component para a Stored Procedure, assim carregando os parâmetros e algumas propriedades especificas para cada stored. Segue modo correto para a utilização.

 

Usando assim.

 

Procedure.Close;

Procedure.Prepare;

Procedure.ParamByName(‘Contrato’).Asstring := Contrato_fin;

 

ou

 

Para diminuirmos os componentes na Tela podemos usar assim.

 

Var

  Procedure : TStoredProc;

begin

  Procedure := TStoredProc.Create(nil);

  Procedure.DatabaseName := 'Banco';

  Procedure.StoredProcName := 'Stp ProcedureBanco;1';

  Procedure.Prepare;

...

..

  Procedure.ExecProc;

  Procedure.unPrepare;

  FreeAndnil(Procedure);

 

          Assim diminuindo as chances do no caso você alterar a StoredProc e esquecer de atualizar os parâmetros por exemplo (Isto é comum de acontecer). O Mesmo serve para Componentes ADO. Para quem tem dificuldades em cria-los dinamicamente pela questões de carregar o parâmetro utilizem o método abaixo.

 

AdoProc.Parameters.Refresh;

 

        Com DbExpress é difícil acontecer este problema pois a Framework carrega os parâmetros automaticamente ao ser passado a Stored Procedure.

 

          Eu fico por aqui, até a próxima tips.