Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

falla en UPDATE??

Estas en el tema de falla en UPDATE?? en el foro de SQL Server en Foros del Web. Hola!!!...espero puedan ayudarme!!!...tengo una tabla con los siguientes campos: Nombre_Motor, Estatus_Motor y Operacion_Motor, y quisiera que se catualizaran los datos en las mismas celdas, el ...
  #1 (permalink)  
Antiguo 21/11/2006, 18:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta falla en UPDATE??

Hola!!!...espero puedan ayudarme!!!...tengo una tabla con los siguientes campos: Nombre_Motor, Estatus_Motor y Operacion_Motor, y quisiera que se catualizaran los datos en las mismas celdas, el campo de Nombre_Motor no cambia, el de la primera fila siempre va a ser M1 y el de la segunda va a ser M2, lo que si cambia es el de Estado y Operacion, se supone que para que se actualicen los datos dentro de la misma celda en la que se encuentran, necesito utilizar un update, y lo estoy manejando asi en el analizador de consultas y no me funciona, que me falta??... ...gracias de antemano por la ayuda!!!


UPDATE MOTORES SET Estatus_Motor= Estatus_Motor, Operacion_Motor=Operacion_Motor WHERE Nombre_Motor = M1;

UPDATE MOTORES SET Estatus_Motor= Estatus_Motor, Operacion_Motor=Operacion_Motor WHERE Nombre_Motor = M2;
  #2 (permalink)  
Antiguo 22/11/2006, 08:42
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
pero le estas asignando el mismo valor que traen...
de donde quieres tomar el valor para actualizarlo???
de una tabla??? de una variable???
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 22/11/2006, 10:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 7 meses
Puntos: 0
Hola Andres95!!!...gracias por contestar!!!...mira los datos me los esta mandando otro software que los recopila de un proceso de produccion, este software es un intermediario, recoge los datos y como esta conectado a SQL los manda a mi tabla en SQL, lo que necesito es que los actualice dentro de las mismas filas y celdas en las que ya estaban contenidos, se supone que debo utilizar un UPDATE y lo estoy manejando como lo puse arrriba, pero creo que está mal porque no actualiza, o mas bien si los actualiza pero no en la misma celda sino que los manda a las filas de abajo, no sé si deba utilizar variables y como...alguna sugerencia??

El caso está asi: Voy a monitorear el estado de 50 motores, mis campos son 3: Nombre, Estado y Operacion de cada motor, en la fila 1 se va a guardar la informacion del Motor1, en la fila 2 la del Motor2 y asi sucesivamente hasta llegar al Motor50, cada vez que el software que comento recopile datos y los mande a mi tabla en SQL necesito que los actualice en la fila y celda en la cual ya se encontraba contenido ese dato, por ejemplo si el estado del Motor1 era "Arranque" y este dato se encontraba en la celda 2 de la fila 1 del campo Estado_Motor y se detiene ahora la celda2 de la fila 1 del campo Estado_Motor debe contener el dato de "Paro" en vez de "Arranque", pero no sé si la sentencia esta bien o si debo utilizar variables y como??...
  #4 (permalink)  
Antiguo 22/11/2006, 13:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 7 meses
Puntos: 0
sigo aqui ya que no he conseguido que me actualice mis filas...he estado leyendo y pues no sé si sea correcto lo siguiente: los datos del campo Nombre_Motor siempre van a ser los mismos, la fila 1 siempre debe de contener los datos del Motor1, por lo tanto el nombre siempre será M1, y asi hasta llegar al Motor50, donde el nombre será M50, por lo tanto este dato es el que podría utilizar para mi condicion (WHERE), los datos contenidos en los campos de Estado y Operación son los que cambian, así es que los podria guardar en variables, para que me actualice dichas variables (aunque tendría que declarar muchas variables), quedandome algo así:

UPDATE MOTORES SET Estatus_Motor= VARIABLE_Estatus_Motor1, Operacion_Motor= VARIABLE_Operacion_Motor1 WHERE Nombre_Motor = M1;
.
.
.
UPDATE MOTORES SET Estatus_Motor= VARIABLE_Estatus_Motor50, Operacion_Motor= VARIABLE_Operacion_Motor50 WHERE Nombre_Motor = M1;


Esto sería buena idea??...como declaro las variables en SQL??...alguna sugerencia??...
  #5 (permalink)  
Antiguo 22/11/2006, 17:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 7 meses
Puntos: 0
Desacuerdo

continuo con el problema...sigo buscando informacion y quizá una solucion seria generar un UPDATE con un TRIGGER...que me aconsejan??...ya revisé información acerca de como generar un trigger, pero no entiendo muy bien, alguna ayuda??..
  #6 (permalink)  
Antiguo 24/11/2006, 08:21
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
perdona que no contestara ayer, pero me ocupe...
como esta el asunto el software inserta datos en tu tabla lo lo hace atraves de el stored procedure que estas haciendo...

por otro lado... no es necesario que hagas variablas para cada motor...con un solo update y la llave correspondiente puedes actualizar tu tabla

por ejemplo

Código:
Create procedure spUpEstadoMotor
       ,@IdMotor   int
       ,@Estatus   int
        @Operacion int
AS
	Update Motores
        SEt Estatus   = @Estatus 
            Operacion = @Operacion
         Where
            IdMotor = @IdMotor

GO
con que herramientas estas trabajando??
  #7 (permalink)  
Antiguo 24/11/2006, 11:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 7 meses
Puntos: 0
Hola, don´t worry!!!...en realidad ayer estubo fallando el foro y tampoco pude ver sirespondieron mis dudas... ...mira te voy a explicar bien como está el procedimento que estoy generando:

Se trata de la automatizacion de un proceso a traves de un plc, dicho plc controla unos motores, por lo tanto conoce el estado de los mismos y almacena esa informacion...bueno esta informacion la puedo mandar a una tabla a traves de un software que funciona como intermediario entre el plc y el sql...se llama rsql y es un sotfware propio del plc, el plc le envia las "señales de control" al rssql y este los envia a una tabla en sql, la cual se crea en sql , pero es en rsql se determina que informacion se va a tomar del plc y hacia q columna de mi tabla en sql se va a guardar, por eso decia que los datos se obtienen de manera externa al sql...no se si se parezca a un stored procedure... ...en realidad no sé muy bien que es un stored procedure!!!

Bueno lo que necesito es mostrar los estados de los motores en una pagina web, para ello es que genero mi tabla con la informacion...con la estructura que comenté arriba, ademas y eso es lo que me falta...necesito que los datos los gurde siempre en la misma celda de la misma fila del campo correspondiente...por ejemplo: la informacion del motor 1 se guarda en la fila1, en la 1er celda (campo1) se guarda el nombre, en la 2da celda se guarda el estado t en la tercera la operacion...Por ejemplo si el motor esta en operando en forma automatica mi información seria la siguiente:

NOMBRE , ESTATUS , MODO
M1 , 1 , 1

Donde en estatus 1= arranque y 0= paro y
en modo 1=automatico y 0=manual

entonces si el motor se detuviera la informacion cambiaria a:

NOMBRE , ESTATUS , MODO
M1 , 0 , 1

pero este cambio debe de guardarse en la misma celda donde ya estaba contenida esa información, lo debe actualizar ahi mismo, por ello decia que mi tabla no va a crecer ya que siempre voy a tener la misma cantidad de informacion y la actualizacion debe ser en las mismas celda, algo asi como sobreescribir datos...esto debe funcionar para 50 motores...y no necesariamente van a cambiar de estatus o modo todos al mismo tiempo.

Otra cosa es que esto de la actualizacion debe de ser de manera automatica, es decir, en cuanto haya un cammbio en uno o varios motores se debe actualizar esta informacion automaticamente, ya me quedó claro que el update hace esto, pero hay que ejecutarlo para "entre en accion", y el sistema debe actuar de nmanera automatica ya que no habrá nadie especialmente para ejecutar el update cada minuto o cada que haya una actualizacion, por eso mecioné que auizá sea necesario utilizar un trgger, disculpen mi ognorancia pero no sé si solo con el update logró la actualizacion inmediata y automatica de los datos...

Esta complicado verdad??...por eso solicito su ayuda...ojala me puedan apoyara resolver este dilema...ademas yo no soy para nada una experta ni mucho menos en sql y BD...se nota verdad??...
  #8 (permalink)  
Antiguo 24/11/2006, 19:08
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
no me queda claro si desde la interfaz rssql puedes ejecutar comandos sql o solamente transforma la señal que recibe del plc insertando registros en una tabla...

si puedes ejecutar comandos solo tendrias que mandar llamar al stored (modificandolo) de ejemplo en cada envio de señal del plc..
p.e.

Execute spUpEstadoMotor (valor de motor), (valor de estatus), (valor de operacion)

y con eso se actualizaria la fila correcta...

si solo puedes insertar filas...
se puedes agregar un autonumerico (columna)
para saber cual es el ultimo registro de cada motor...para hacer tu consulta a la pagina asp....

que tengas un buen fin de semana....
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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 22:32.