A Unit criada chama-se Estruturas.pas, pode ser adicionada ao seu projeto e declarada na cláusula Uses do DataModule da aplicação.
  
  Insira na Unit do DataModule a função abaixo:
  
  Function TDM.AliasToPath(Alias: String): String;
  Var
    Desc : dbDesc;
    szAlias : Array[0..255] Of Char;
  Begin
    StrPCopy(szAlias,Alias);
    DbiGetDatabaseDesc(szAlias,@Desc);
    Result := StrPas(Desc.szPhyName);
  End;
  
  A função acima tem como objetivo retornar o path do Alias usado pela aplicação.
  
  Em seguida, o evento Create do DataModule deverá ficar assim:
  
  procedure TDataModule1.DataModuleCreate(Sender: TObject);
  Var ArquivoEncontrado: Integer;
  begin
    For ArquivoEncontrado := 0 To DataModule1.ComponentCount - 1 Do
    If (DataModule1.Components[ArquivoEncontrado] Is TTable) Then
      If FileExists(ExtractFilePath(Application.ExeName) + (DataModule1.Components[ArquivoEncontrado] As TTable).TableName) Then
      Begin
        EstruturaDesejada(ExtractFilePath(Application.ExeName) + (DataModule1.Components[ArquivoEncontrado] As TTable).TableName);
        EstruturaAtual(AliasToPath('NomeDoAlias') + '\' + (DataModule1.Components[ArquivoEncontrado] As TTable).TableName);
        VerificaEstruturas;
        IgualaEstruturas;
        DeleteFile(ExtractFilePath(Application.ExeName) + ExtractFileName((DataModule1.Components[ArquivoEncontrado] As TTable).TableName));
      End;
  End;
  
  Feito isso, basta reestruturar as tabelas pelo Database Desktop e distribuir as mesmas, vazias e com suas novas estruturas no mesmo diretório onde se encontra o arquivo executável de sua aplicação.
  
  E importante dizer que o Alias não poderá estar sendo apontado para este mesmo diretório, ou seja, as tabelas a serem atualizadas tem que estar em um diretório qualquer diferente de onde esta o arquivo executável de sua aplicação.
  
  Automaticamente, como num passe de mágica todas as tabelas serão reestruturas e atualizadas.
  
  Retirei esta dica do Site Active News, melhorando um pouco a dica vc precisa acrescentar na sua Unit o DBIProcs.

           
---------------------------------
Yahoo! Search
Imposto de Renda 2006: o prazo está acabando. Faça já a sua declaração no site da Receita Federal.

[As partes desta mensagem que não continham texto foram removidas]



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a