Fórum Otimizar abertura de tabelas #341339
05/05/2007
0
Vejam oque já fiz:
var
mqtdTables: integer;
vetTables: array of string;
.
.
.
mqtdTable:=18;
setlength(vetTables,mqtdTable);
vetTables[1]:=´tAssistidos´;
vetTables[2]:=...
.
.
.
procedure TdmPrincipal.abreTabelas;
var i: integer;
begin
for i:=1 to mqtdTable do
begin
AnsiExtractQuotedStr(vetTables[i],´).active:=true;
end;
end;
Nossa, nunca fiz isso antes em Delphi, na verdade é só um palpite :oops:
A mensagem de erro é a seguinte:
´types of actual and format parameters must to be identical ´
Desde já, agradeço a quem puder me ajudar.
Sandrad
Curtir tópico
+ 0Posts
06/05/2007
Marco Salles
eu tenho um pouco de receio disso ,porque os nomes tem que baterem , senão :cry: :cry: :cry:
mas pode ser feito assim
const
vetTables: array[1..18] of string = (´NomeTabela1´,´NomeTabela2´,etc...);
procedure TdmPrincipal.abreTabelas; var i: integer; begin for i:=1 to high(vetTables) do begin try TSuaClasse(FindComponent(vetTables[i])).active:=True; except showmessage(´não existe tablea com este nome : ´+vetTables[i]); end; end; end;
TsuaClasse pode ser TTable , TClintDataSet etc...
Gostei + 0
07/05/2007
Sandrad
Qto a ter q ter realmente o nome no array... bom, sei q dá pra melhorar isso, como criar uma função q varre o datamodule e coloca no array todos os componentes TZtable, por exemplo... mas aí eu já não sei fazer ainda, portando prefiro resolver um problema de cada vez.
Gostei + 0
07/05/2007
Saint
for i:=0 to dm.componentcount-1 do
if dm.components[i] is tzquery then
if ((dm.components[i] as tzquery).tag=1) then
(dm.components[i] as tzquery).open;
Gostei + 0
07/05/2007
Sandrad
Obrigada.
Gostei + 0
07/05/2007
Sandrad
Muito obrigada mesmo.
Gostei + 0
10/05/2007
Marco Salles
Mas me estranhou a sua resposta :cry: :cry: :cry:
const vetTables: array[1..18] of string = (´NomeTabela1´,´NomeTabela2´,etc...);
Código: procedure TdmPrincipal.abreTabelas; var i: integer; begin for i:=1 to high(vetTables) do begin try TSuaClasse(FindComponent(vetTables[i])).active:=True; except showmessage(´não existe tablea com este nome : ´+vetTables[i]); end; end; end;
Porém quanto a sua afirmação que deu erro
é estranho , unica forma que imagino que possa ocorrer isso é voce chamar esta função antes que esse Componentes tenham sido criado
No mais se puder me da mais detalhe , sei que voce ja resolveu seu problema , é so mesmo para tentar descobrir porque Deu este Erro :cry: :cry:
Obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)