Fórum Função ou procedure para chamar variável #213919
13/02/2004
0
Banco de dados Firebird dialilect 3, componentes IBDataset.
var Tabela : String;
begin
Tabela:=cbTabelas.SelText;
With Tabela do
Close;
SelectSQL[2]:=Condicao;
Open;
O Problema é que with não entende que a variável é o nome da tabela.
Existe alguma forma de resolver isso. Alguém conhece uma função ou
procedure que invoque uma tabela através de uma string?
Agradeço a atenção de todos
Marcos
[b:86461ce535][color=blue:86461ce535]Título editado pelo Moderador (AZ) - Removido: ´--- Urgente!!!´[/color:86461ce535][/b:86461ce535]
Pr.mas
Curtir tópico
+ 0Posts
13/02/2004
Lucas Silva
o código acima está errado... o with não esta funcionando pq precisa de um begin..end
Tabela:=cbTabelas.SelText; With Tabela do begin Close; SelectSQL[2]:=Condicao; Open; end;
Gostei + 0
13/02/2004
Pr.mas
Coloquei o begin end e mesmo assim não funcionou. O problema é que with não considera a variável como o nome da tabela. Se eu colocar o nome da tabela direto funciona, mas quando coloco como uma variável e compilo aparece o seguinte erro ´[Error] ConFiltro.pas(145): Record, object or class type required´.
Aguardando sua resposta
Marcos
Gostei + 0
13/02/2004
Lucas Silva
ele é muito importante assim???
Gostei + 0
13/02/2004
Cebikyn
Tente assim:
Pegue esta unit
http://www.href.com/pub/source/tprtti.pas.txt
Nela vc acha a função que converte [b:9e60d4e004]String[/b:9e60d4e004] para o componente com o nome correspondente. Basta fazer o typecast.
Seu código ficaria assim:
with TTable(FindComponentByName(Tabela)) do begin
...
end;
Vc pode trocar TTable por qq outra classe, dependendo de sua necessidade. E Tabela é a sua variável String.
Gostei + 0
13/02/2004
Pr.mas
Agradeço a ajuda de todos
Cebikyn, testei e funcionou legal, valeu pela dica!!!
Até mais
Marcos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)