none
Controlar errores de tablas referenciadas

    Pregunta

  • Holaa buenas a todos, por favor necesito ayuda para un problema que se me ha puesto como interrogante

    PROBLEMA:

    tengo la tabla->

    Create table TipoDocumento(
    tipodoc_codigo int identity (1,1) primary key,
    tipodoc_nombre varchar(30)
    )

    Y la tabla ->

    Create table Proveedor(
    provee_codigo int identity(1,1) primary key,
    tipodoc_codigo int, --REFERENCIADA DE LA TABLA TipoDocumento 
    provee_numerodoc varchar(20),
    provee_direccion varchar(50),
    provee_telefono char(9),
    provee_email varchar(50),
    foreign key(tipodoc_codigo) references TipoDocumento(tipodoc_codigo)
    )

    COMO PODRÁN VER LA TABLA Proveedor TIENE COMO LLAVE FORANEA LA COLUMNA  tipodoc_codigo , esta
    a su vez es llave primaria de la tabla TipoDocumento y esta con identity en la misma tabla TipoDocumento, ahora hice un procedimiento para insertar en la tabla Proveedor he hice esto :

    Create Procedure sp_InsertarProveedor
    @tipodoc_codigo int, --REFERENCIADA DE LA TABLA TipoDocumento 
    @provee_numerodoc varchar(20),
    @provee_direccion varchar(50),
    @provee_telefono char(9),
    @provee_email varchar(50),
    @MensajeNuProvee varchar(150) output
    As Begin
    if(exists(Select * from Proveedor where provee_numerodoc = @provee_numerodoc))
    set @MensajeNuProvee = 'Proveedor ya existe'
    Else Begin
    Insert Into Proveedor VALUES(@tipodoc_codigo,@provee_numerodoc,
    @provee_direccion,@provee_telefono,@provee_email)
    Set @MensajeNuProvee = 'Registrado Correctamente'
    End
    End
    GO

    Y AHORA EL PROBLEMA ES QUE CUANDO SE TRATE DE INGRESAR UN NUEVO PROVEEDOR DESDE EL FORMULARIO COMO SE VA A SABER EL NUMERO DEL tipodoc_codigo DE LA TABLA TipoDocumento, PORQUE CUANDO SE EQUIVOCAN EN INSERTAR EL CAMPO tipodoc_codigo SALE UN ERROR EN LA BASE DE DATOS,ADEMAS NO QUISIERA QUE EL USUARIO ESTE INGRESANDO O RECORDANDO EL NUMERO DEL tipodoc_codigo de la TABLA TipoDocumento AL MOMENTO DE INGRESAR EN EL FORMULARIO COMO PUEDO HACER ESTO PARA CONTROLAR ERRORES DE REFERENCIA EN CASO DE QUE HAYA UNA MALA INSERCION DE DATOS, COSA QUE ES COMUN EN LOS USUARIOS. PIDO ORIENTACION EN ESTO POR FAVOR

    miércoles, 7 de septiembre de 2016 17:30

Respuestas

  • En el formulario, pon un dropdown que tenga toda la lista de tipos de documento (que habrás previamente leído desde la base de datos en el momento de abrir el formulario). Cuando el usuario está ingresando un proveedor, no le dejas que teclee el tipo de documento, sino que solo le dejas elegirlo desde el dropdown. De esta manera, se sabe seguro que el valor existe en la base de datos, y no se producen errores.
    miércoles, 7 de septiembre de 2016 17:48

Todas las respuestas

  • En el formulario, pon un dropdown que tenga toda la lista de tipos de documento (que habrás previamente leído desde la base de datos en el momento de abrir el formulario). Cuando el usuario está ingresando un proveedor, no le dejas que teclee el tipo de documento, sino que solo le dejas elegirlo desde el dropdown. De esta manera, se sabe seguro que el valor existe en la base de datos, y no se producen errores.
    miércoles, 7 de septiembre de 2016 17:48
  • Muchas gracias, de esa manera podre controlar los errores de la base de datos, gracias te lo AGRADEZCO
    miércoles, 7 de septiembre de 2016 18:24