Jump to content


osvaldo luso

Member Since 17/09/2009
Offline Last Active 21/01/2010, 00:59
-----

Posts I've Made

In Topic: Chamar Pagina Dentro De Div

23/12/2009, 21:59

[code=auto:0][/code]

Infelizmente ainda só funciona o IE 8 ,Mosila etc. Não funciona em IE < 8.


Consegui a solução. Basta inverter o parte do código.

Código original:
xmlRequest.onreadystatechange = mudancaEstado;  
xmlRequest.open("GET",url,true);  
xmlRequest.send(null);
Código invertido:
xmlRequest.open("GET",url,true);  
xmlRequest.onreadystatechange = mudancaEstado;
xmlRequest.send(null);

[code=auto:0][/code]


Infelizmente ainda só funciona o IE 8 ,Mosila etc. Não funciona em IE < 8.


Consegui a solução. Basta inverter o parte do código.

Código original:
xmlRequest.onreadystatechange = mudancaEstado;  
xmlRequest.open("GET",url,true);  
xmlRequest.send(null);
Código invertido:
xmlRequest.open("GET",url,true);  
xmlRequest.onreadystatechange = mudancaEstado;
xmlRequest.send(null);

Ah, A fonte é :Clique aqui

In Topic: Chamar Pagina Dentro De Div

18/12/2009, 11:12

Infelizmente ainda só funciona o IE 8 ,Mosila etc. Não funciona em IE < 8.

In Topic: Indice De Multiplas Colunas

01/10/2009, 00:09

Tudo bem, eu sei que o uso de índice otimiza as consultas. Eu só quis dizer que o USE INDEX é inútil em UPDATE (a doc. diz que aceita a sintaxe, mas não tem significado no UPDATE). O que lhe ajudou foi o SELECT para direcionar as possíveis linhas.

O que você pode fazer é melhorar o SELECT, pegando somente os registros que existem em A e B, e que o tipo não seja 4 para fazer o UPDATE.

SELECT B.Banco, B.Agencia, B.Numero, B.Valor
  FROM B FORCE INDEX (Procura)
	STRAIGHT_JOIN A
	ON A.Banco = B.Banco
	  AND A.Agencia = B.Agencia
	  AND A.Numero = B.Numero
	  AND A.Valor = B.Valor
  WHERE B.Tipo <> 4

E claro, se a tabela B é a que tem menos registros, é melhor utilizá-la para fazer a busca. Além do mais, como você está fazendo o UPDATE na B, é melhor guiar-se pela existência de registro nela, não na tabela A. Onde possivelmente está fazendo rodar vários UPDATE que não encontram linha alguma. (Não sei como estão os dados em ambas) Sem falar que você está apenas alterando para um valor fixo. Sem obter qualquer correspondente na outra tabela.

Gostei da sua sujestão. Vou implementá-la.

Muito obrigado!


In Topic: Indice De Multiplas Colunas

30/09/2009, 01:49

Seus updates estão muito lentos? A documentação do MySQL diz que você pode usar esses hints de índices, porém eles não serão usados em comandos UPDATE.

A instrução que lhe passei anteriormente já faz o "loop" de cada linha da tabela b e tenta encontrar os dados que batam na tabela a, se encontrar ele altera o tipo.



Com seu exemplo o tempo browser utrapassou 60 segundos e programa parou. Com o código abaixo o processamento
foi realizado em 9 segundos pois a localização utilizando indice é mais rapido, cfe doc Mysql:

$rsCheques = $mySQL->sql("SELECT  Banco, Agencia, Numero, Valor FROM A;");    while ($row_rsCheques = mysql_fetch_array($rsCheques))  {          $mySQL->sql("UPDATE B USE INDEX (Procura) SET Tipo = 4  WHERE   Banco = $row_rsCheques[0] AND Agencia = $row_rsCheques[1] AND Numero = $row_rsCheques[2] AND  Valor = $row_rsCheques[3] LIMIT(1);");    }

Desculpe mas gostaria de saber se tem forma ainda mais rápida pois as minhas tabela possuem mais de 60.000 linhas.
e o teste foi realizado com tabela de 30.000 linhas.

In Topic: Indice De Multiplas Colunas

29/09/2009, 21:43

Ops, desconsidere minha resposta anterior. Eu estava pensando em outra coisa. :P

Enfim, então você quer atualizar os registros da tabela B onde exista na tabela A, checando isso por: banco + agencia + nr_cheque e valor.

Então ficaria, por exemplo:

update b, a set b.tipo = 4 where (b.banco, b.agencia, b.nr_cheque, b.valor) = (a.banco, a.agencia, a.nr_cheque, a.valor);


Consegui localizar e atualizar conforme abaixo. A sintaxe para utilização de índice composto está correta????:

$rsCheques = $mySQL->sql("UPDATE B USE INDEX (Procura30) SET Tipo = 4  WHERE   Banco = 1 AND Agencia = 32 AND Numero = 850518 AND Valor = 2493.00;");

Então gostaria de saber como faço para receber os dados da tabela "A" através de um loop e atualizar os dados em "B" de
forma que quando terminar de percorrer a tabela "A" todos os dados localizados em "B" estarão atualizados.

IPB Skin By Virteq