Guardar query em array
11/03/2006
0
Bom dia Pessoal
Estou tentando guardar uma query um uma array de query ( utilizo o IBOxFirebird).
vmatsqls: array [0..150] of String;
vmatquery: array [0..150] of Tib_query;
procedure guardaquery(vtabela: Tib_query);
var i : integer;
vquery: tib_query;
begin
for i := 0 to length(vmatsqls)-1 do
begin
if vmatsqls[i] = ´´ then
begin
vmatsqls[i] := vtabela.name;
vquery:=vtabela;
vmatquery[i] := vquery;
exit;
end;
end;
end;
blz até ai funciona
depois crie um clausula where para a tabela, no caso vtabela referenciada acima, e executo um ´filtro´.
também até ai blz.
porém quando faço um limpaquery( procedure abaixo ) a query em vmatquery[i] está com o contéudo da query utilizada no filtro.
procedure limpaquery(vtabela: tib_query;vrzordem: Trzcombobox;vordem:integer);
var i : integer;
begin
for i := 0 to length(vmatsqls)-1 do
begin
if vmatsqls[i] <> ´´ then
begin
if alltrim(uppercase(vmatsqls[i])) = alltrim(uppercase(vtabela.Name)) then
begin
vtabela.ApplyUpdates;
vtabela.close;
vrzordem.ItemIndex := vordem-1;
vtabela:=vmatquery[i]; // aqui vmatquery[i] esta com o conteudo do filtro.
vtabela.Open;
end;
end
else
exit;
end;
end;
alguém sabe me dizer porque isso acontece e como arrumar isso?
Obrigado
Estou tentando guardar uma query um uma array de query ( utilizo o IBOxFirebird).
vmatsqls: array [0..150] of String;
vmatquery: array [0..150] of Tib_query;
procedure guardaquery(vtabela: Tib_query);
var i : integer;
vquery: tib_query;
begin
for i := 0 to length(vmatsqls)-1 do
begin
if vmatsqls[i] = ´´ then
begin
vmatsqls[i] := vtabela.name;
vquery:=vtabela;
vmatquery[i] := vquery;
exit;
end;
end;
end;
blz até ai funciona
depois crie um clausula where para a tabela, no caso vtabela referenciada acima, e executo um ´filtro´.
também até ai blz.
porém quando faço um limpaquery( procedure abaixo ) a query em vmatquery[i] está com o contéudo da query utilizada no filtro.
procedure limpaquery(vtabela: tib_query;vrzordem: Trzcombobox;vordem:integer);
var i : integer;
begin
for i := 0 to length(vmatsqls)-1 do
begin
if vmatsqls[i] <> ´´ then
begin
if alltrim(uppercase(vmatsqls[i])) = alltrim(uppercase(vtabela.Name)) then
begin
vtabela.ApplyUpdates;
vtabela.close;
vrzordem.ItemIndex := vordem-1;
vtabela:=vmatquery[i]; // aqui vmatquery[i] esta com o conteudo do filtro.
vtabela.Open;
end;
end
else
exit;
end;
end;
alguém sabe me dizer porque isso acontece e como arrumar isso?
Obrigado
Jubrovolski
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)