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

Error sqlserver constraint

Estas en el tema de Error sqlserver constraint en el foro de SQL Server en Foros del Web. Ejecuto una sentencia de ingreso y me sale este error [microsoft][odbc sql server driver] [sql server] insert statement conflicted whit table foreing key consytraint "fk_ventacuartel_32ab8735". ...
  #1 (permalink)  
Antiguo 26/09/2005, 14:18
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
Error sqlserver constraint

Ejecuto una sentencia de ingreso y me sale este error

[microsoft][odbc sql server driver] [sql server] insert statement conflicted whit table foreing key consytraint "fk_ventacuartel_32ab8735". The conlfict occurred in database 'DBINVENTARIOVINOS',table 'CUARTEL'

fk_vendimiacuartel_32ab8735 tiene id_cuartel,id_venta

With adoVenCuartel.Recordset
adoVenCuartel.Recordset.AddNew
adoVenCuartel.Recordset.Fields("id_documentoventa" ) =2
adoVendimiaCuartel.Recordset.Fields("id_Productor" ) = 1
adoVendimiaCuartel.Recordset.Fields("id_DocumentoV entaTipo") = 1
adoVenCuartel.Recordset.Fields("id_Cuartel") = 1
adoVenCuartel.Recordset.Fields("id_Venta") = 1
adoVenCuartel.Recordset.Update
End With

Los datos estan bien peustos pero no me deja guaradar
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #2 (permalink)  
Antiguo 26/09/2005, 16:34
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Revisa que tienes en el contstraint que señala el mensaje.

Abre la tabla mediante Desgin Table... y ve la sección de contraints (el último botón en la barra de herramientas). Si aún así no entiendes que pasa postea el código del constraint junto con el insert que genera el error para poder ayudarte mejor.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 27/09/2005, 09:05
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
Mira solucione el problema pero postie esto en visual basic... pero no se si sera la solucion real la que tengo . ya que busco el id del fk con una funciona llamada Busca_UltimoCorrelativoPadre().....
que es un select max(id_padre) from padre

Estoy realizando un sitema en el cual trabajaran barios usuarios a la vez.

EL problema que al ingresar datos a la BD puede que queden mal ingresados..
Me refiero a que por ejemplo

tabla padre
id_padre -> autonumerico
pa_nombre
pa_fono


tabla hijo
id_padre
id_hijo -> autonumerico
hi_nombre
hi_fono


Trabajo con adodc en visual 6.0 y sql server 2000

Ahora me hace bien el ingreso, pero tengo la duda que al ingresar más de un usuario de la menera que lo estoy realizando quede un reboltijo de ingreso


With adoPadre.Recordset
adoPadre.Recordset.AddNew
adoPadre.Recordset.Fields("id_Nombre") = "ejemplo padre"
adoPadre.Recordset.Fields("id_fono") = 81818
adoPadre.Recordset.Update
End With
adoPadre.Refresh

strNroCorrelativo = Busca_UltimoCorrelativoPadre()

With adoHijo.Recordset
adoHijo.Recordset.AddNew
adoHijo.Recordset.Fields("id_padre") = CInt(strNroCorrelativo)
adoHijo.Recordset.Fields("hi_nombre") = "Ejemplo"
adoHijo.Recordset.Fields("hi_fono") = 81818
adoHijo.Recordset.Update
End With
End If


Como pueden ver dependo de una consulta para saber cual fue el ultimo.. pero es un caso exepcional al trabajar en linea de varios usuarios puede que queden cruzados algunos ingresos.


Me pueden dar una idea para que no pase eso...
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #4 (permalink)  
Antiguo 27/09/2005, 15:01
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Muy sencillo: olvídate complicaciones con VB

Directamente en SQL Server tienes los Stored Procedures, que te permiten encapsular operaciones dentro de una sola entidad, y además utilizar transacciones para garantizar que todo "se haga o no se haga" (Propiedades ACID)

Ya que lo tengas simplemente te preocupas por mandarlo llamar desde VB mandando los parámetros a insertar.

Lee la documentación correspondiente en VB para trabajar con Stored Procedures
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 05:08.