Foros del Web » Programando para Internet » ASP Clásico »

ayuda de busqueda y update ¡¡¡

Estas en el tema de ayuda de busqueda y update ¡¡¡ en el foro de ASP Clásico en Foros del Web. Hola me puede alguien ayudar con este codigo por que no quiere funcionar bien Lo que trato de hacer es actualizar los valores de una ...
  #1 (permalink)  
Antiguo 05/11/2003, 17:13
Avatar de jorel  
Fecha de Ingreso: abril-2003
Ubicación: Monterrey, N.L.
Mensajes: 253
Antigüedad: 21 años, 2 meses
Puntos: 0
Exclamación ayuda de busqueda y update ¡¡¡

Hola me puede alguien ayudar con este codigo por que no quiere funcionar bien

Lo que trato de hacer es actualizar los valores de una tabla segun los valores de otra tabla.

Pasa que tengo un tabla que exporto de un txt a access y algunos valores de esta los quiero comparar con los valores de mi web y me actualize ciertos campos en caso de que haya diferencias.

En especifico

busca por codigo entre las dos tablas y cuando encuentra uno igual , me actualiza el campo precio1

Este es el codigo:

<%Set oConn = Server.CreateObject ("ADODB.Connection")

Set RS = Server.CreateObject ("ADODB.RecordSet")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("mitabla.mdb")

sql = "SELECT codigo, precio1, exi FROM exi1"
Rs.Open sql, oConn, 3, 1

Do While not RS.EOF
codigo1 = RS("codigo")
precio1 = RS("precio1")
exi1 = RS("exi")
Set RS2 = Server.CreateObject ("ADODB.RecordSet")
sql2 = "SELECT codigo, precio1 FROM exi"
RS2.Open sql2, oConn, 3, 1

Do While codigo1 <> codigo2 and not RS2.EOF

codigo2 = RS2("codigo")
precio2 = RS2("precio1")


if exi1 = 0 then
sql2 = "UPDATE exi SET precio1= '0' where codigo="&codigo1&" "
oConn.Execute sql2
else
sql2 = "UPDATE exi SET precio1="&precio1&" where codigo="&codigo1&" "
oConn.Execute sql2
end if
RS2.MoveNext
Loop
RS.MoveNext
Loop

RS2.Close
Set RS2 = nothing
RS.Close
oConn.Close
Set RS = nothing
Set oConn = nothing

Response.Write "cambios realizados"
%>

Lo extraño es que si me hace lo que quiero, pero cuando la tabla no tiene tantos registros, pero como mi base es de mas de 5000 registros ahi es cuando se queda pensando el explorer.

como puedo optimizar mas este codigo ayuda por favor ¡¡¡¡¡¡¡¡¡
__________________

:adios:

Jorge Santana

Última edición por jorel; 05/11/2003 a las 17:14
  #2 (permalink)  
Antiguo 06/11/2003, 07:50
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
Yo creo que con este simple query haría exactamente lo mismo.

UPDATE T1 JOIN T2 ON T1.CLAVE = T2.CLAVE SET T1.PRECIO = T2.PRECIO

Te actualiza siempre el precio (sea igual o diferente, que para el caso es lo mismo), en todos aquellos registros de T1 cuya clave esté en T2.

Ya me contarás si te sirve.
  #3 (permalink)  
Antiguo 06/11/2003, 14:08
Avatar de jorel  
Fecha de Ingreso: abril-2003
Ubicación: Monterrey, N.L.
Mensajes: 253
Antigüedad: 21 años, 2 meses
Puntos: 0
Sigue fallando aun con el tip que me dio Alex,

Se queda pensando, pensando el explorer,...


el codigo que habia puesto como les decia , hice una prueba con 50 registros en cada tabla y funciona bien , hace lo que quiero, pero cuando trato de hacer el total de registros de mi bd que son mas de 1000 pues ahi es cuando falla

help please ¡¡¡¡¡¡¡
__________________

:adios:

Jorge Santana

Última edición por jorel; 06/11/2003 a las 14:09
  #4 (permalink)  
Antiguo 07/11/2003, 02:34
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
jorel, no tendria por qué pasar. Has comprobado si tienes un el campo código indexado? Es muy importante.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:15.