Ir para conteúdo
Fórum Script Brasil
  • 0

atualizar sistema em clientes antigos


flavioavilela

Pergunta

bom dia a todos...

tenho alguns clientes que fazem uso do meu sistema.... clientes antigos e clientes novos....

para os clientes novos, eu sei o que tenho que fazer em relação as mudanças feitas no sistema, mas os antigos nem tanto né rsrs... tem alguma forma pratica e rápida que verifica se há algumas alterações no banco de dados e que o SGBD me fale o que tenho que fazer ou algo mais simples?? pois, ficar guardando scripts de tabelas que eu vou alterando é foda né.... eu sei que no caso do delphi, basta atualizar o .exe, o problema está no bd mesmo, atualizar as mudanças no bd lá no cliente mais antigo, que está usando uma versão bem mais antiga.... alguém tem uma solução?????? meu banco é sql server...

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Eu faço isso na tela de abertura, eu chego tabela por tabela e campo por campo e assim vou criando, num label coloco a tabela atual pra se der erro eu saber em qual parou, no caso o label5...

// Tabela "Cargos"  **** Firebird
var
tabela : string;
L,C : TStringList;
begin
tabela := 'CARGOS';
L := TStringList.Create;
SQLConnection1.GetTableNames(L);
if ( not L.IndexOf(tabela) >= 0) then // Tabela não Existe
begin
SqlCriaTabela.Close;
SqlCriaTabela.SQL.Clear;
SqlCriaTabela.SQL.Add('CREATE TABLE '+ tabela +' (');
SqlCriaTabela.Sql.Add('CODIGO2 INTEGER NOT NULL PRIMARY KEY,');
SqlCriaTabela.Sql.Add('DESCRI2 VARCHAR(20))');
SqlCriaTabela.ExecSQL;
SqlCriaGen.close;
SqlCriaGen.sql.clear;
SqlCriaGen.sql.add('CREATE GENERATOR GEN_CARGOS_CODIGO2');
SqlCriaGen.execSql;
SqlCriaGen.close;
SqlCriaGen.sql.clear;
SqlCriaGen.sql.add('SET GENERATOR GEN_CARGOS_CODIGO2 TO 0');
SqlCriaGen.execSql;
L.Free;
end
else
begin
C := TStringList.Create;
sqlconnection1.GetFieldNames(tabela, C);

SqlCriaTabela.SQL.clear;
SqlCriaTabela.SQL.add('Alter Table');
SqlCriaTabela.SQL.add(tabela);

cria := false;
texto := '';
virg := '';

if C.IndexOf('CODIGO2') < 0 then
begin
texto := 'ADD CODIGO2 INTEGER NOT NULL PRIMARY KEY';
virg := ',';
cria := true;
end;

if C.IndexOf('DESCRI2') < 0 then
begin
texto := texto + virg + 'ADD DESCRI2 VARCHAR(20)';
virg := ',';
cria := true;
end;
/// ***** Rotina que Executa a Query
     sqlCriaTabela.Active := false;
     if cria then
     begin
     SqlCriaTabela.sql.add(texto);
     SqlCriaTabela.ExecSQL;
     end;
     end;
     sleep(15);
     reg := reg + 1;
     prog1.Position := reg;
/// ***** Fim da rotina que executa a Query ****
end;
label5.Caption := tabela;
self.Repaint;

O que você precisará fazer é adicionar esses componentes acima, nas Querys você n precisa adicionar nada pois ele adiciona acima nesse código!

Veja se consegue fazer, qualquer coisa fala q tento te ajudar!

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...