Problemas desde dos pantallas

14/07/2005 - 13:56 por Tecnicos Aydai | Informe spam
Hola a todos!!!
Vereis, tengo el siguiente problema trabajando desde dos pantallas contra el
mismo registro, si desde una pantalla lo elimino, y desde la otra lo
modifico, no me da ningun error la base de datos, y me gustaria que si que
me saliese ese error. Estoy trabajando contra una base de datos en MSDE, y
el codigo que uso para modificar el registro es el siguiente.

Public Function Modificar(ByVal mcc7_codigo As String, ByVal mcc7_nombre As
String, ByVal mcc7_estado As String, ByVal mcc7_usuario As Integer, ByVal
mcc7_acceso As Integer, ByVal mcc7_fegraba As Date, ByVal mcc7_ttyno As
String) As Integer

Dim comando_modificar As New SqlCommand

Dim result As Integer

Dim cadena As String

Dim ex As SqlException

result = 0

comando_modificar.CommandText = "UPDATE PP0F7MCC SET mcc7_nombre = '" &
mcc7_nombre & "', mcc7_estado = '" & mcc7_estado & "', mcc7_usuario = '" &
mcc7_usuario & "', mcc7_acceso = '" & mcc7_acceso & "', mcc7_fegraba = '" &
mcc7_fegraba & "', mcc7_ttyno = '" & mcc7_ttyno & "' WHERE ( mcc7_codigo =
'" & mcc7_codigo & "' )"

comando_modificar.Connection = Pp0f7mccConnexion

Try

comando_modificar.Connection.Open()

comando_modificar.ExecuteNonQuery()

Catch ex

Dim i As Integer

For i = 0 To ex.Errors.Count - 1

MessageBox.Show("Índice nº " + i.ToString() + ControlChars.Cr _

+ "Mensaje: " + ex.Errors(i).Message)

Next i

End Try

comando_modificar.Connection.Close()

Return result

End Function



Si se os ocurre algo ya me comentais. Un saludo y gracias por todo.

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
14/07/2005 - 16:08 | Informe spam
La sentencia UPDATE de SQL no genera error si no se encontro un registro
para modificar y por eso no se propaga ningun error al codigo. Pero puedes
saber si se ha modificado algun registro chequeando el resultado de
ExecuteNonQuery. ExecuteNonQuery te devuelve el numero de registros
afectados por el comando y si devuelve 0 entonces significa que no se
actualizo ningun registro.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Tecnicos Aydai
14/07/2005 - 17:01 | Informe spam
Hola Eduardo!!! Muchas gracias por tu respuesta, justo acababa de leer eso
mismo en un libro, pero ahora tengo un problema que no se como resolver.
Veras es acerca de lo mismo, pero en el caso de modificar un registro en vez
de borrarlo, programando en visual 6, si modificaba un registro y desde otra
pantalla modificaba el mismo, me daba un error como que este registro ya
habia sido modificado. El problema es que ahora en visual .net, (supongo que
sera por el modo desconectado) cuando modifico un registro, y desde la otra
pantalla modifico el registro, no me da ningun tipo de error. Me gustaria
saber si hay alguna manera de bloquear algun registro de la base de datos.

Un saludo y muchas gracias por tu ayuda.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
La sentencia UPDATE de SQL no genera error si no se encontro un registro
para modificar y por eso no se propaga ningun error al codigo. Pero puedes
saber si se ha modificado algun registro chequeando el resultado de
ExecuteNonQuery. ExecuteNonQuery te devuelve el numero de registros
afectados por el comando y si devuelve 0 entonces significa que no se
actualizo ningun registro.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
14/07/2005 - 20:10 | Informe spam
En ese caso lo que puedes hacer es actualizar el registro basandote en todos
los campos y no solo en el campo clave. Algo como

UPDATE Tabla SET Campo1='valor_nuevo', Campo2='valor_nuevo'
WHERE Campo1='valor_viejo' AND Campo2='valor_viejo'

Si no se actualiza ningun registro significa que el registro o fue eliminado
o fue modificado desde otro lugar.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#4 Tecnicos Aydai
15/07/2005 - 09:18 | Informe spam
Muchas gracias Eduardo, pero esta solucion no es viable, ya que en este caso
la clase solo tiene dos campos, en cambio, tendre otras clases cuyo numero
de campos puede ser muchisimo mayor, con lo que la solucion se me
complicaria mucho. De todas maneras muchas gracias.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
En ese caso lo que puedes hacer es actualizar el registro basandote en
todos los campos y no solo en el campo clave. Algo como

UPDATE Tabla SET Campo1='valor_nuevo', Campo2='valor_nuevo'
WHERE Campo1='valor_viejo' AND Campo2='valor_viejo'

Si no se actualiza ningun registro significa que el registro o fue
eliminado o fue modificado desde otro lugar.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#5 LuisMiguel
02/09/2005 - 00:01 | Informe spam
y un campo que te indique si se ha modificado algo?

UPDATE Tabla SET Campo1='valor_nuevo', Campo2='valor_nuevo',
UltimaModificacion=AnteriorModificacion+1
WHERE Campo1='CampoClave' AND UltimaModificacion='AnteriorModificacion'

Suerte
LuisMiguel
"Tecnicos Aydai" escribió en el mensaje
news:

Muchas gracias Eduardo, pero esta solucion no es viable, ya que en este
caso la clase solo tiene dos campos, en cambio, tendre otras clases cuyo
numero de campos puede ser muchisimo mayor, con lo que la solucion se me
complicaria mucho. De todas maneras muchas gracias.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
En ese caso lo que puedes hacer es actualizar el registro basandote en
todos los campos y no solo en el campo clave. Algo como

UPDATE Tabla SET Campo1='valor_nuevo', Campo2='valor_nuevo'
WHERE Campo1='valor_viejo' AND Campo2='valor_viejo'

Si no se actualiza ningun registro significa que el registro o fue
eliminado o fue modificado desde otro lugar.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo







email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida