Realize este procedimiento que dependiendo del paramentro operacion (le
tengo que pasar si voy a Grabar, Modificar, Borrar o Buscar) es lo que tiene
que hacer.
El problema lo tengo con Buscar cuando uso la sentencia Like, cuando busco
por correo electronico me lo busca en forma perfecta, cuando busca por
telefono o por el apellido del contacto no. Alguien me puede ayudar y decir
en que estoy fallando
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CREATE PROCEDURE proc_cliente
@VarIdCliente numeric(9),
@VarNombreCompania nvarchar(50),
@VarNombreContacto nvarchar(50),
@VarApellidosContacto nvarchar(50),
@VarDireccionFacturacion nvarchar(50),
@VarCiudad nvarchar(50),
@VarEdoOProv nvarchar(50),
@VarCodPostal nvarchar (20),
@VarPais nvarchar(20),
@VarCargoContacto nvarchar(20),
@VarNumTelefono nvarchar(30),
@VarNumFax nvarchar(50),
@VarDirCorreoElectronico nvarchar(50),
@VarNotas nvarchar (200),
@VarOperacion nvarchar (20)
AS
SELECT @VarDirCorreoElectronico = RTRIM(@VarDirCorreoElectronico) + '%'
SELECT @VarNumTelefono= RTRIM(@VarNumTelefono) + '%'
if @VarOperacion = 'modificar'
begin
update clientes set
NombreCompañía=@VarNombreCompania
, NombreContacto=@VarNombreContacto
,ApellidosContacto=@VarApellidosContacto
,DirecciónFacturación=@VarDireccionFacturacion
,Ciudad=@VarCiudad
,EdoOProv=@VarEdoOProv
,CódPostal=@VarCodPostal
,[País o región]=@VarPais
,CargoContacto=@VarCargoContacto
,NúmTeléfono=@VarNumTelefono
,NúmFax=@VarNumFax
,DirCorreoElectrónico=@VarDirCorreoElectronico
,Notas=@VarNotas
where
idcliente=@VarIdCliente
end
else if @VarOperacion ='Borrar'
begin
delete from clientes where IdCliente=@VarIdCliente
end
else if @VarOperacion= 'Grabar'
begin
insert into clientes(NombreCompañía,
NombreContacto,ApellidosContacto,
DirecciónFacturación,Ciudad,EdoOProv,CódPostal,[País o
región],
CargoContacto,NúmTeléfono,NúmFax,DirCorreoElectrónico,
Notas)
values (@VarNombreCompania,
@VarNombreContacto,@VarApellidosContacto,@VarDireccionFacturacion,
@VarCiudad,@VarEdoOProv,@VarCodPostal,@VarPais,
@VarCargoContacto,@VarNumTelefono,@VarNumFax,@VarDirCorreoElectronico,
@VarNotas)
end
else if @VarOperacion='Buscar'
begin
if isnull(@VarIdCliente,0) <> 0
select * from clientes where
(IdCliente=@VarIdCliente) order by IdCliente
else if isnull(@VarDirCorreoElectronico,'correo
ausente') <> 'correo ausente'
select * from clientes where DirCorreoElectrónico
like @VarDirCorreoElectronico
else if isnull(@VarNumTelefono,'telefono ausente') <>
'telefono ausente'
select * from clientes where NúmTeléfono like
@VarNumTelefono
else if isnull(@VarApellidosContacto,'apellido ausente')
<> 'apellido ausente'
select * from clientes where ApellidosContacto
like @VarApellidosContacto
else
select * from Clientes order by
ApellidosContacto, NombreContacto
end
Leer las respuestas