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: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.

