GARANTIR DESCONTO

Fórum Problema com uma tabela quot;DBFquot; e TTable #346652

25/09/2007

0

Boa Tarde Galera!


Seguinte, tenho um sistema usando DbExpress acessando base dados Oracle9i, mas infelismente tenho uma tabela que eh em DBase(DBF) e preciso pegar o conteudo de um campo (X_CONT) converte-lo de base 36 para decimal somar um converte-lo novamente para base36 e salvar o novo conteudo no parametro, a tabela possui somente 3600 linhas(micharia).

Mas meu problema eh o seguinte na empresa que trabalho temos 3 filiais (Matriz e + 2) e os servidores estao todos na Matriz e as filiais acessam via link da Brasil Telecom o link eh de 256Kbps nas filiais e 512 na Matriz, quando executo na Matriz ateh que eh rapido uns 2 segundos(quero dizer rapidos perto das filiais que leva em torno de 5 minutos para pegar o resultado do parametro).

A ajudo que preciso de vcs eh de como posso deixar isso + rapido na Matriz e principalmente nas filiais, a impressao que tenho eh que essa query abre toda a tabela(3600 linhas) ao inves de me trazer somente o conteudo da variavel que preciso. Jah testei com TTable, TQuery, TDBF e nao sei mais pra que lado correr, preciso de um help...Obrigado!

Para pegar o conteudo do parametro...
DM_C.Query1.Close; DM_C.Query1.sql.Clear; DM_C.Query1.SQL.Add(´SELECT X_FIL, X_VAR, X_CONT FROM X_PARAM WHERE X_FIL = :xFil AND X_VAR = :xSEQ ´); DM_C.Query1.ParamByName(´xFIL´).AsString := Frm_VALIDACAO.ED_FILIAL.Text; DM_C.Query1.ParamByName(´xSEQ´).AsString := ´SEQ´; DM_C.Query1.Prepare; DM_C.Query1.Open; DM_C.xSEQ := DM_C.Query1.Fields[2].Text;

. . .

Para gravar o novo parametro...
with DM_C.Query1 do begin edit; fieldbyname(´X_CONT´).Text := DM_C.xSEQ; post; end;



Claudio_f

Claudio_f

Responder

Posts

27/09/2007

Aroldo Zanela

Colega,

Quando se usa base de dados desktop como as do dBase, uma TTable será muito mais eficiente que as TQuerys. Entretanto, dependendo da configuração da sua InterLAN da BT, os arquivos temporários do BDE podem estar trafegando sobre a mesma, gerando um overhead com consequente degradação da performance de sua aplicação.
Meu primeiro chute seria forçar a criação dos arquivos temporário para um disco local na filial.
Ex:
Session.PrivateDir := ´C:\Temp´;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar