Nome das tabelas dos fields de um clientdataset - GetTableNameFromSQL

Delphi

15/03/2012

Olá pessoal, veja se podem me ajudar!

Monto uma sql dinamicamente, que é uma consulta morta executada em um ClientDataSet. Algo do tipo:

commandText :=
select
tabela1.campoA,
tabela1.campoB,
tabela2.campoX,
tabela2.campoZ
... (outros campos se necessarios)...
from tabela1
left join tabela2 on tabela1.chave = tabela2.chave
...(outros joins se necessarios)
where tabela1.campoA = Valor_que_desejar

Como podem notar, existe a tabela1 e o join com a tabela2, e/ou outros...
Quando executo GetTableNameFromSQL(commandText) só retorna a tabela1 do from.

Preciso do retorno com todas as tabelas, inclusive as dos joins.
Como posso obter entao isso?

Na realidade preciso preencher um segundo clientdataset que possui field[1] = TABELA e field[2] = CAMPO,
onde cada campo resultante da instrução sql será um registro. Em um outro dado momento, precisarei remontar instruções
SQL utilizando-me desses registros (TABELA e CAMPO).

Marcos
cpeixoto.marcos@gmail.com
Tek-system Ltda

Tek-system Ltda

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

15/03/2012

Tente assim:
from tabela1
left join tabela2 as tabela1 on tabela1.chave= tabela2.chave

==

GOSTEI 0
Tek-system Ltda

Tek-system Ltda

15/03/2012

Olá Leonardo,
Obrigado pela atenção, mas essa alteração não alterou nada no resultado do GetTableNameFromSQL.
Eu pensava que ele me retornasse as tabelas envolvidas...

Marcos
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

15/03/2012

tente isto aqui:

[CODE]
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS
WHERE RDB$VIEW_BLR IS NULL AND (RDB$SYSTEM_FLAG = 0 OR RDB$SYSTEM_FLAG IS NULL);
[\CODE]
GOSTEI 0
Tek-system Ltda

Tek-system Ltda

15/03/2012

Desculpa Leonardo,

Não entendi em que ou como isso vai me ajudar, pois traz todas as tabelas do meu banco.

Marcos
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

15/03/2012

tente alguns destes comandos:

GetTableNameFromSQL(const SQL: WideString): WideString;

GetTableNameFromQuery(const SQL: WideString): WideString;

GetTableNameFromSQLEx(const SQL: WideString; IdOption: IDENTIFIEROption): WideString;
GOSTEI 0
POSTAR