Integridad Referencial

04/01/2007 - 15:41 por POWER Informática - S do Livramento - RS | Informe spam
Desculpe el portuñol:

Em una base de datos Access tengo várias tablas com relecinamentos /
integridade referencial. Tudo ok funcionando bien.

Estoy passando a VB.NET, VS-2005.

Após criar o form de cadastro de profissiones, por ejemplo, criando la
conexion e arrastando los campos para un form, una BindingNavigator es
criada automaticamente, e la manutencion da la tabla fica muito boa, mas
ocurrem uns problemas:

1) Al incluir una profision con um "profissãoID" já existente recebo una
mensagem de erro;

"A coluna 'ProfissaoID' está restrita a conter valores exclusivos. O
valor '1' já existe."


2) Al Eliminar una linha de la tabla donde ja tiene itens relacionados
recebo la sequinte mensagen:
"O registro não pode ser excluído ou alterado porque a tabela
'tblAssociados' inclui registros relacionados a ele."


Lo que preciso es INTERPRETAR LOS ERRORES VINDOS DE LA BASE DE DATOS
MS-ACCESS.


Como la descricion de los errores recebidos es tan amigavel e está en
portugues no VS-2005 tiene como yo aproveitar esse recurso.



Antecipadamente agradeço


Carlos Alberto Nunes Susviela (Brasil)

Preguntas similare

Leer las respuestas

#1 SoftJaén
04/01/2007 - 16:07 | Informe spam
"POWER Informática - S do Livramento - RS" escribió:

Lo que preciso es INTERPRETAR LOS ERRORES VINDOS DE LA BASE DE DATOS
MS-ACCESS.

Como la descricion de los errores recebidos es tan amigavel e está en
portugues no VS-2005 tiene como yo aproveitar esse recurso.



Hola, Carlos Alberto:

Disculpa que te responda en español, pero es el idioma en el que más o menos
me defiendo. :-)

Si he leído bien tu mensaje, deduzco que deseas obtener la descripción y el
número de error de las excepciones producidas por el proveedor de datos .net
OleDb. Si es así, prueba a ejecutar lo siguiente:

Dim cnn As New OleDbConnection(connString)

Try
' En esta parte abriríamos la conexión
'
cnn.Open

Catch ex As OleDbException
' Aquí detectaríamos la excepciones producidas
' por el proveedor OleDb.
'
Dim msg As String
Dim n As Int32

' Recorremos la collección Errors
For n = 0 To ex.Errors.Count - 1
Dim oledbErr As OleDbError = ex.Errors(n)
With oledbErr
msg = "Message = " & .Message & ControlChars.CrLf
msg &= "Source = " & .Source & ControlChars.CrLf
msg &= "NativeError = " & .NativeError & ControlChars.CrLf
msg &= "SQLState = " & .SQLState & ControlChars.CrLf
End With

' Mostramos el mensaje de error
MessageBox.Show(msg)
Next

Catch ex As Exception
' Aquí capturaríamos otras excepciones más genéricas
'
MessageBox.Show(ex.Message)

Finally
' Y en este apartado, cerramos la conexión
'
cnn.Close()
cnn = Nothing

End Try

Como podrás observar, el objeto genérico «Exception» deberá figurar en
último lugar dentro del bloque «Try ... End Try», porque si lo sitúas antes
del objeto «SqlException», entonces será aquel el que intercepte la
excepción, y por tanto, no podrás recorrer la colección «Errors».

Un saludo y ¡Feliz Año Nuevo!

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 POWER Informática - S do Livramento - RS
04/01/2007 - 17:55 | Informe spam
Gracias pela pronta resposta

puedes contestar en español lo entendo
no se escribir.

Voi a tentar e te retorno;


Año Nuevo - Gracias a ti ya todos teus;

Carlos Susviela


SoftJaén escreveu:
"POWER Informática - S do Livramento - RS" escribió:
Lo que preciso es INTERPRETAR LOS ERRORES VINDOS DE LA BASE DE DATOS
MS-ACCESS.

Como la descricion de los errores recebidos es tan amigavel e está en
portugues no VS-2005 tiene como yo aproveitar esse recurso.



Hola, Carlos Alberto:

Disculpa que te responda en español, pero es el idioma en el que más o menos
me defiendo. :-)

Si he leído bien tu mensaje, deduzco que deseas obtener la descripción y el
número de error de las excepciones producidas por el proveedor de datos .net
OleDb. Si es así, prueba a ejecutar lo siguiente:

Dim cnn As New OleDbConnection(connString)

Try
' En esta parte abriríamos la conexión
'
cnn.Open

Catch ex As OleDbException
' Aquí detectaríamos la excepciones producidas
' por el proveedor OleDb.
'
Dim msg As String
Dim n As Int32

' Recorremos la collección Errors
For n = 0 To ex.Errors.Count - 1
Dim oledbErr As OleDbError = ex.Errors(n)
With oledbErr
msg = "Message = " & .Message & ControlChars.CrLf
msg &= "Source = " & .Source & ControlChars.CrLf
msg &= "NativeError = " & .NativeError & ControlChars.CrLf
msg &= "SQLState = " & .SQLState & ControlChars.CrLf
End With

' Mostramos el mensaje de error
MessageBox.Show(msg)
Next

Catch ex As Exception
' Aquí capturaríamos otras excepciones más genéricas
'
MessageBox.Show(ex.Message)

Finally
' Y en este apartado, cerramos la conexión
'
cnn.Close()
cnn = Nothing

End Try

Como podrás observar, el objeto genérico «Exception» deberá figurar en
último lugar dentro del bloque «Try ... End Try», porque si lo sitúas antes
del objeto «SqlException», entonces será aquel el que intercepte la
excepción, y por tanto, no podrás recorrer la colección «Errors».

Un saludo y ¡Feliz Año Nuevo!





Carlos Alberto Nunes Susviela
== P O W E R I n f o r m a t i c a

Rua Joao Manoel, 912 Centro
CEP: 97572-150 SantŽAna do Livramento - RS

(55) 3242-5427 Celular: 9994-8782
http://www.PowerInformatica.com.br
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida