Fecth no IBX, tem como?
30/03/2006
0
Pessoal,
Tem como fazer um fetch com componentes IBX?
Por exemplo, a minha select traz 3.000 registros, porém no DBGrid quero quer não venha tudo para o cliente, apenas conforme o usuário se move de cima pra baixo o sistema vai trazendo de 300 em 300 por exemplo.
vlw
Tem como fazer um fetch com componentes IBX?
Por exemplo, a minha select traz 3.000 registros, porém no DBGrid quero quer não venha tudo para o cliente, apenas conforme o usuário se move de cima pra baixo o sistema vai trazendo de 300 em 300 por exemplo.
vlw
Adriano Santos
Curtir tópico
+ 0
Responder
Posts
30/03/2006
Vinicius2k
Adriano,
Este comportamento (Fetch On Demand) é automático no IBX. Quando você abre um TIBQuery/TIBDataSet, apenas os registros necessários no momento são trazidos para o lado do cliente.
Ex: Se, quando você abre o DataSet, seu TDBGrid está exibindo 10 registros, foram trazidos para o lado do cliente apenas 10 registros.
Se quiser comprovar, abra seu DataSet e leia a propriedade [i:d18bafa25c]RecordCount[/i:d18bafa25c].
[b:d18bafa25c]Porém[/b:d18bafa25c], algumas ações realizadas por você, como a utilização de métodos como [i:d18bafa25c]Last[/i:d18bafa25c] e [i:d18bafa25c]Locate[/i:d18bafa25c] e a existência de TFields do tipo [i:d18bafa25c]LookUp[/i:d18bafa25c], invalidam este recurso, forçando o fetch de todos os registros para o lado do cliente.
Há ainda o método [i:d18bafa25c]FetchAll[/i:d18bafa25c] cuja função é forçar o fetch de todos os registros. Se você utiliza alguma rotina baseada na propriedade [i:d18bafa25c]RecordCount[/i:d18bafa25c], para que ela seja lida como esperado, deve-se invocar primeiramente o método [i:d18bafa25c]FetchAll[/i:d18bafa25c]. Lembrando que isto estaria compromentendo a performance da aplicação.
Algumas dicas sobre [i:d18bafa25c]Tuning[/i:d18bafa25c] no IBX:
http://community.borland.com/article/0,1410,27659,00.html
Este comportamento (Fetch On Demand) é automático no IBX. Quando você abre um TIBQuery/TIBDataSet, apenas os registros necessários no momento são trazidos para o lado do cliente.
Ex: Se, quando você abre o DataSet, seu TDBGrid está exibindo 10 registros, foram trazidos para o lado do cliente apenas 10 registros.
Se quiser comprovar, abra seu DataSet e leia a propriedade [i:d18bafa25c]RecordCount[/i:d18bafa25c].
[b:d18bafa25c]Porém[/b:d18bafa25c], algumas ações realizadas por você, como a utilização de métodos como [i:d18bafa25c]Last[/i:d18bafa25c] e [i:d18bafa25c]Locate[/i:d18bafa25c] e a existência de TFields do tipo [i:d18bafa25c]LookUp[/i:d18bafa25c], invalidam este recurso, forçando o fetch de todos os registros para o lado do cliente.
Há ainda o método [i:d18bafa25c]FetchAll[/i:d18bafa25c] cuja função é forçar o fetch de todos os registros. Se você utiliza alguma rotina baseada na propriedade [i:d18bafa25c]RecordCount[/i:d18bafa25c], para que ela seja lida como esperado, deve-se invocar primeiramente o método [i:d18bafa25c]FetchAll[/i:d18bafa25c]. Lembrando que isto estaria compromentendo a performance da aplicação.
Algumas dicas sobre [i:d18bafa25c]Tuning[/i:d18bafa25c] no IBX:
http://community.borland.com/article/0,1410,27659,00.html
Responder
30/03/2006
Adriano Santos
Opa vlw Vinicius, uma camarada meu me perguntou e não soube responder. Não uso IBX.
Vlw mesmo, abraço
Vlw mesmo, abraço
Responder
Clique aqui para fazer login e interagir na Comunidade :)