Problema con el Like

29/10/2004 - 22:16 por marcelo Novato | Informe spam
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

#1 Maxi
29/10/2004 - 22:31 | Informe spam
Hola, y si nos muestras el SP?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"marcelo Novato" escribió en el mensaje
news:
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







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 21/10/2004

Preguntas similares