Fórum Nome Tabela Dentro Query #446447
24/06/2013
0
Teremos que alterar nome de alguma tabela no banco de dados, alguém sabe se exite alguma pesquisa no delphi para mostrar todas as query que usa tabelo que irei alterar ?
Adm Ltda
Curtir tópico
+ 0Posts
24/06/2013
Guilherme Wiethaus
Gostei + 0
24/06/2013
Thiago Porto
Gostei + 0
24/06/2013
Joel Rodrigues
1) Fazer uma busca em todos os arquivos pelo texto (nome da tabela).
2) Buscar no próprio Windows pelo texto dentro do diretório do projeto e identificar os arquivos que usam essa tabela.
Se tem algo para facilitar isso, confesso que não sei, mas quando precisei, utilizei essas duas técnicas.
Boa sorte.
Gostei + 0
24/06/2013
Eduardo Barbosa
Gostei + 0
24/06/2013
Joel Rodrigues
Mas isso é no banco, não?
Gostei + 0
24/06/2013
Guilherme Wiethaus
Gostei + 0
24/06/2013
Joel Rodrigues
Não ficou claro como isso soluciona o problema do nosso amigo que abriu o tópico. Poderia explicar melhor, por favor?
Gostei + 0
24/06/2013
Joel Rodrigues
Poderia dar um exemplo disso, Guilherme? Uma instrução SQL que liste quais datasets estão utilizando uma tabela no Delphi? Se é que é realmente possível.
Gostei + 0
24/06/2013
Guilherme Wiethaus
Se deseja alterar uma tabela no banco utilize um instrução SQL do banco para pesquisar e depois achando, alterar. Executar esta instrução utiliza-se um DataSet ou Query, passando o comando para ele.
Agora se deseja saber qual dos DataSet e Query está o nome da Tabela na isntrução SQL, ai é outra história. Não é impossível, mas bem trabalhosa.
Primeiramente, num datamodule, como um objeto pai, procurar todos os filhos da Classe TDataSet. Achando a classe pegar a propriedade SQL e passar para uma variável. Ai a segunda etapa, na variável procurar pela cláusula FROM, INNER, OUTER, LEFT RIGHT JOIN e o que achar depois é o nome da tabela (precisa realizar um parser). Este processo de procura deve permanecer num loop até achar todos os DataSets e Query.
(Uso esta técnica de procurar as classes de um DataSet no Datamodule, a qual possui o objeto Connection e que irei fechar os datasets que estão ligados a um Connection antes de fechar a conexão).
Pode ainda fazer que no loop, a cada Dataset ou Query Filhos achados, insira num TList para ficar fácil depois de varrer novamente através de um loop.
Para tanto terá que informar ao menos um objeto Pai para inicio da busca.
Outra coisa que deve levar em consideração. Ao realizar esta mudança no banco de dados do nome da tabela, como vai ficar o nome das tabelas na suas sql dos componentes DataSet e Query? Heim? Nem preciso responder por esta não?!...rsrsrs.
Abraços
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)