Nome das tabelas dos fields de um clientdataset - GetTableNameFromSQL
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
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
Curtidas 0
Respostas
Leonardo Xavier
15/03/2012
Tente assim:
from tabela1
left join tabela2 as tabela1 on tabela1.chave= tabela2.chave
==
from tabela1
left join tabela2 as tabela1 on tabela1.chave= tabela2.chave
==
GOSTEI 0
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
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
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]
[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
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
Não entendi em que ou como isso vai me ajudar, pois traz todas as tabelas do meu banco.
Marcos
GOSTEI 0
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;
GetTableNameFromSQL(const SQL: WideString): WideString;
GetTableNameFromQuery(const SQL: WideString): WideString;
GetTableNameFromSQLEx(const SQL: WideString; IdOption: IDENTIFIEROption): WideString;
GOSTEI 0