Espero que no te este incomodando con estas preguntas, pero son preguntas que me dejaron en la escuela y quisiera que me ayudes cuanto antes por favor I.Se tiene la tabla proveedor(codprov, nomprov, direcc. Telef. Ruc): Realizar un procedimiento que permita modificar el ruc, solamente del cliente cuyo código sera ingresado como parámetro II. Se tiene la tabla alumnos y cursos relacionados con el campo codalum. Diga como mostrar el
código del alumno, nombre, turno, nombre del curso de todos que estudien en el mismo turno que el laumno MIDCHEL JAGER III.como hacer una restricción tipo click para el campo fecha-ins de tal manera que solamente debe aceptar fechas a partir del 2000 disculpa por la simpleza pero es que recién estoy aprendiendo espero que no te ofendas gracias de ante mano
La preguntas me las has formulado incorrectamente ya que ni me especificas con que lenguaje estas trabajando ( ya que no se si los valores se pasan por algún script en internet o bien son procedimientos almacenados ), y además no me dices la estructura que posee la bbdd
II Solo utilizo el servicio sql 7 desktop. Y son procedimientos almacenados . La relación entre alumnos y cursos es de uno a muchos un alumno puede llevar varios cursos codalum es PORQUE en la tabla alumnos y FK en la tabla cursos. La tabla alumnos tiene los campos: codalum(codigo del alumno PK), nom(nombre del alumno),turno(del alumno). la tabla cursos tiene los sgtes campos: codcur(codigo del curso), nomcur(nombre del curso),y codalum (que viene por la relacion con la otra tabla FK). III. Fecha-ins. Es fecha de inscripción que puede ser de un empleado . Y lo que no se es a que se refiere con --- una restricción tipo click--- Podrías darme un ejemplo con este campo
I. Update proveedor set ruc = dato where codprov = codigo II. select codigo, nombre, turno, nomcurso from alumnos, cursos where alumnos.idalumno = cursos.idalumno and alumnos.nombre = 'MIDCHEL JAGER' III. No entiendo esta pregunta, pero creo que restricción tipo click es el manejo de algún evento.
Esta es la BD exacta y e estado indagando a partir de tus respuestas Y tengo tudas solo necesito que me ayudes ya que no me salen y la Verdad ya no doy, solo quiero tu ayuda profesional, son las sgtes. ----------------------------------------- create database importaciones100 on ( name= importaciones100_dat, filename='c:\transa1\importaciones100_dat.mdf' ) log on ( name= importaciones100_log, filename='c:\transa1\importaciones100_log.ldf' ) ----------------------------------------------------- create table alumnos ( codalum char(8) primary key check (codalum like 'alum[0-9][0-9][0-9][0-9]'), nombre char(20) not null, turno char(10) not null ) ----------------------------------------------------- create table cursos ( codcur char(7) primary key check (codcur like 'cur[0-9][0-9][0-9][0-9]'), codalum char(8) not null foreign key references alumnos (codalum), curso varchar(20) not null ) ------------------------------------------------------- create table proveedor ( codprov char(8) primary key check (codprov like 'prov[0-9][0-9][0-9][0-9]'), nomprov char(12) not null, direcc varchar(25) not null, telef varchar(7) not null, ruc char(11) not null, ) ------------------------------------------------------- create table clientes ( codcli char(7) primary key check (codcli like 'cli[0-9][0-9][0-9][0-9]'), nombre char(15) not null, ruc char(11) not null ) ALTER TABLE clientes ALTER COLUMN nombre char(20) ______________________________________________________________________________________- insert into alumnos(codalum,nombre,turno) values ('alum0003','van vasten','mañana') insert into alumnos(codalum,nombre,turno) values ('alum0004','raul romero','tarde') insert into cursos(codcur,codalum,curso) values ('cur0002','alum0003','MATEMATICAS') insert into cursos(codcur,codalum,curso) values ('cur0003','alum0004','ANATOMIA') select *from PROVEEDOR update cursos set curso='INFORMATICA' where codcur='cur0002' insert into proveedor(codprov,nomprov,direcc,telef,ruc) values ('prov0001','MARTI MARCIA','av.lima','5472476','12345678965') insert into proveedor(codprov,nomprov,direcc,telef,ruc) values ('prov0002','JIMY NEUTRON','av.BRASIL','5470054','98745678965') insert into clientes(codcli,nombre,ruc) values ('cli0001','VANBUITEN SIMOND','32165498787') insert into clientes(codcli,nombre,ruc) values ('cli0000','VAN HERSLEY','65453498788') insert into clientes(codcli,nombre,ruc) values ('cli0003','MARK WILMOND','32165498789') insert into clientes(codcli,nombre,ruc) values ('cli0004','ROBERTO CARLOS','32165498721') select *from clientes update clientes set nombre='ROLL FALNISTERROY' where codcli='cli0000' update alumnos set nombre='patrick kuivert' where codalum='alum0004' ----------------------------------------------------------------------- II) select TABLE_ID=a.codalum,TABLE_NAME=a.nombre,TUR_ALUM=a.turno,CUR_ALUM=c.curso from alumnos a inner join cursos c on a.codalum=c.codalum where a.nombre='midchel jager' and a.turno='mañana' select codigo,nombre No se como hacerle creer al sql que quiero el turno del alumno especificado sin saber sin es MAÑANA, TARDE o NOCHE solo cuando lo ejecute ------------------------------------------------------- ------------------------------------------------------- I) Con respecto a la pregunta de modificar el R.U.C. create procedure sp_nuevo @xcod char(4), @xruc char(11) as begin transaction declare @c_cod char(4),@c_nom varchar(20),@c_ruc char(11) declare c_cliente cursor for select codcli,nombre,ruc from clientes where codcli=@xcod ; open c_cliente fetch c_cliente into @c_cod,@c_nom,@c_ruc while @@fetch_status = 0 begin update clientes set ruc=@xruc where current of c_cliente fetch c_cliente into @c_cod,@c_nom,@c_ruc end close c_cliente deallocate c_cliente print ("verificado.....") select *from clientes if @@error<>0 begin rollback transaction print('proceso ok...') end else begin commit transaction print('proceso ok...') end EXEC SP_NUEVO @XCOD='cli0000', @XRUC='11111111111' Con respecto a la pregunta de modificar el R.U.C.
I. Veamos, este es un procedimiento de oracle que tengo echo yo, excepto algunas modificaciones, está correcto para sqlserver, espero que te sirva. create procedure modificar ( i_idt IN Transportistas.Idt%TYPE, i_codigo IN Transportistas.Codigo%TYPE, i_login IN Transportistas.Login%TYPE, i_nif IN Transportistas.Nif%TYPE, i_nombretransportista IN Transportistas.Nombre%TYPE, i_apellidostransportista IN Transportistas.Apellidos%TYPE, i_direccion IN Transportistas.Direccion%TYPE, i_ciudad IN Transportistas.Ciudad%TYPE, i_provincia IN Transportistas.Provincia%TYPE, i_zip IN Transportistas.Zip%TYPE, i_telefono IN Transportistas.Telefono%TYPE, i_telmovil IN Transportistas.Telmovil%TYPE, i_fax IN Transportistas.Fax%TYPE, i_email IN Transportistas.Email%TYPE, i_web IN Transportistas.Web%TYPE, i_permiso IN Transportistas.Permiso%TYPE, i_observaciones IN Transportistas.Observaciones%TYPE, i_alias IN Transportistas.Alias%TYPE, i_foto IN Transportistas.Foto%TYPE, i_autonomo IN Transportistas.Autonomo%TYPE, i_idca IN Vehiculos.Idca%TYPE, o_codigo OUT NUMBER ) IS CURRIDT NUMBER(10); v_Existe VARCHAR2(40); CURSOR c_Codigo IS SELECT Nombre FROM Transportistas WHERE Idt = i_idt; CURSOR c_Repetido IS SELECT Nombre FROM Transportistas WHERE Codigo = i_codigo AND Idt <> i_idt; BEGIN OPEN c_Codigo; FETCH c_Codigo INTO v_Existe; IF v_Existe IS NULL THEN o_codigo := 0; ELSE v_Existe := ''; OPEN c_Repetido; FETCH c_Repetido INTO v_Existe; IF v_Existe IS NULL THEN UPDATE Transportistas SET Codigo = i_codigo, Login = i_login, Nif = i_nif, Nombre = i_nombretransportista, Apellidos = i_apellidostransportista, Direccion = i_direccion, Ciudad = i_ciudad, Provincia = i_provincia, Zip = i_zip, Telefono = i_telefono, Telmovil = i_telmovil, Fax = i_fax, Email = i_email, Web = i_web, Permiso = i_permiso, Observaciones = i_observaciones, Alias = i_alias, Foto = i_foto, Autonomo = i_autonomo WHERE Idt = i_idt; SELECT Last_Number - 1 INTO CURRIDT FROM All_Sequences WHERE Sequence_Name = 'TRANSPORTISTAS_SEQ'; IF i_autonomo = 0 THEN IF i_idca <> 0 THEN DELETE FROM Veh_Cond WHERE ( Idt = CURRIDT OR Idca = i_idca ); END IF; ASIGNARVEHICULOCONDUCTOR (CURRIDT, i_idca); END IF; o_codigo := 1; ELSE o_codigo := 0; END IF; CLOSE c_Repetido; END IF; CLOSE c_Codigo; END;
La programación que enviaste bota errores seguidos cuando lo ejecuto, podrías ayudarme de otra manera
La programación que te he enviado lo he hecho en oracle, tu tienes que adaptar este procedimiento almacenado a la bbdd que estés usando.