Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/01/2009, 06:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: UPDATE o INSERT ? [ caso especial ]

"Estar parado" en un registro no existe en SQL. Si lo haces desde una aplicación es la apliacción la que realiza la conexión entre si misma y la tabla, por lo que al ver un registro en pantalla (suponiendo una interfase gráfica) la palicación en realidad está haciendo internamente un UPDATE.
Ese es el principio de diseño del ADO (o DAO) de .Net. Los conectores se encargan de establecer si leen, actualizan o borran, conforme estén configurados los CommandBuilders internos.
Pero si la cosa la quieres hacer en SQL, no hay más remedio: debes levantar el registro entero a variables y volverlo a enviar a la base para hacer un REPLACE.
La ventaja del segundo proceso, es que puedes manejar una tabla entera para actualizaciones, y luego reenviarla en un REPLACE masivo, que crearías en la aplicación. Algo así como:
Código sql:
Ver original
  1. REPLACE INTO Tabla1
  2. VALUES (valores1), (valores2), (valores3), ... (ValoresN);
enviando en los valores solamente aquellos registros que hayas efectivamente modificado.
Este tipo de sentencias se construye en las aplicaciones en foma dinámica (tengo algunas que generan 50 ó 100 reemplazos/inserciones en una sola ejecución).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)