Ver Mensaje Individual
  #15 (permalink)  
Antiguo 15/03/2007, 16:53
tammander
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Ayuda con Guardar,Modificar,Eliminar datos de una base de datos

Ya te digo que el problema esta en el diseño de la tabla en la base de datos. Ahora veo que costos_maxirest posee el campo bme que actua de campo unico y que es ese el que tienes que actualizar.

Primero: La sentencia SQL UPDATE no tiene ese formato que pones. Es:

UPDATE tabla SET campo=valor, campo2=valor2, campoN = valorN WHERE campoclave = valorClave

Y el INSERT (insertar) es:

INSERT INTO tabla (campo1, campo2, campoN) VALUES (valor1, valor2, valorN)

Como ves UPDATE necesita al menos un campo de control (clave) para que se actualize solo un registro o un grupo de ellos. Si no lo haces asi, actualiza TODOS los registros de la tabla.

Por otro lado.

Si lo que quieres es actualizar precisamente ese campo de control, lo mejor es insertar un nuevo campo en la tabla que actue de indice primario y liberar el otro campo de esa labor. Pero como veo que lo que quieres hacer es actualizar (UPDATE) la tabla, veamos el otro metodo.

ASP permite cargar los datos de una busqueda en un objeto Recordset. Una vez almacenado en el, lo modificas. Esto suele funcionar en Bases de Datos de Microsoft (Access, MSSQL Server) porque a las tablas que no tienen indice primario, le asigna uno interno para controlar la posicion de cada registro en la tabla.

El codigo:

Donde tu pones:
Código:
if bme_actual<>"" or bme<>0 then
   sSQL="UPDATE costos_maxirest (bme) values ('" & bme_actual & "')"
   'y Ejecutamos la orden 30 veces
   set objRS = Conn.Execute (sSQL)
end if
Yo lo haria asi (y me pillo los dedos porque esto es un peligro )

Código:
if bme_actual<>"" or bme<>0 then
   set objRS = Conn.Execute ("SELECT * FROM costos_maxirest WHERE bme = '" & bme & "'")
   ' Si existe el registro
   if not objRS.EOF then
      objRS("bme") = bme_actual
      objRS.update()
   end if
   objRS.close()
end if
Mas no puedo hacer. Sigo pensando que crear una tabla temporal que incluya un indice primario autonumerico y volcar los datos de la tabla costos_maxirest es la mejor opcion.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -

Última edición por tammander; 15/03/2007 a las 17:00