Tem o método GetTableNameFromSQL da unit DBCommon. Mais tem casos
especificos que não funciona.

Por exemplo, esse sql abaixo funcionar perfeitamente

select *
 from tabela1 a
left outer join tabela2 on a.id = b.id

Agora se vc utilizar subqueries no select como o exemplo abaixo, ai não
funciona, pois ele vai pensar que a tabela principal é a tabela3.

select a.*,
          (select c.id from tabela3 c where a.id = c.id)
 from tabela1 a
left outer join tabela2 on a.id = b.id


Em 15 de julho de 2010 11:52, Rubem Rocha <rubem.ro...@dtmanaus.com.br>escreveu:

>
>
> Não tem algoritmo ou fórmula mirabolante pra esse caso. Usando a função
> Pos(), peque a posição da palavra ‘FROM’ e a posição da próxima cláusula
> seguinte ao FROM (que pode ser WHERE, GROUP BY, HAVING, ORDER BY ou
> qualquer
> uma outra, dependendo do banco de dados que estejas usando). Recorte a
> string dentro desse faixa de posições e analise para obter o(s) nome(s)
> da(s) tabela(s) desejada(s).
>
> Sds.
>
> De: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> [mailto:
> delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>] Em
> nome de Evaldo
> Enviada em: quinta-feira, 15 de julho de 2010 10:41
> Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>
> Assunto: [delphi-br] Procurar Nome da tabela dentro da query
>
>
> Alguém tem algum algoritimo para capturar o nome da tabela a que se refere
> uma
> query?
>
> por exemplo um objeto TsqlQuery com a instrução:
>
> ' select nome,telefone from CLIENTE where idcliente = :cliente ';
>
> o algoritimo iria retornar 'CLIENTE'.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[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:
    delphi-br-ow...@yahoogrupos.com.br
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:
    delphi-br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a