30/12/2008, 06:35
|
| | Fecha de Ingreso: agosto-2006 Ubicación: en lima peru
Mensajes: 184
Antigüedad: 18 años, 4 meses Puntos: 0 | |
Respuesta: problemas con containstable y tíldes HOLA GRACIAS POR TU RESPUESTA, LO QUE SUCEDE ES QUE LOS CAMPOS YA LOS CAMBIE POR EL COLLATE Latin1_General_CI_AS YO HAGO EL MATCH EN LA SENTENCIA CONTAINSTABLE POR EJEMPLO:
FROM T_TIE_PRODUCTO PRO WITH(NOLOCK)
INNER JOIN @vtbl_Descendencia c on c.PRO_ID=PRO.PRO_ID
INNER JOIN CONTAINSTABLE (T_TIE_PRODUCTO,*, 'ROLDAN') AS KEY_TBL
ON PRO.PRO_ID = KEY_TBL.[KEY]
Y NO ME DEVUELVE LOS REGISTROS "Roldan, ROLDAN, Roldán, ROLDÁN" ALGUNA SUGERENCIA?
TE ADJUNTO MI CODIGO SQL:
Código:
alter PROCEDURE dbo.PW_TIE_L_BusquedaProducto -- dbo.PW_TIE_L_BusquedaProducto 0, 1, '-1', -1, 0, 'ROLDÁN', ''
@piint_AreCodigo tinyint,
@piint_TipoCodigo tinyint,
@pivch_Identificador varchar(50),
@piint_ProId int,
@piint_NivelMaximo tinyint,
@pivch_Busqueda varchar(255),
@pivch_BusquedaHtmlEnc varchar(500)
AS
SET NOCOUNT ON
DECLARE @vint_Hijos int, @vint_Hijos1 int, @vint_ProIdPadre int
IF @piint_TipoCodigo<>0
SET @piint_ProId=(SELECT TOP 1 PRO_ID FROM T_TIE_PRODUCTO WITH(NOLOCK) WHERE IDENTIFICADOR=@pivch_Identificador AND ARE_CODIGO=@piint_AreCodigo)
ELSE
IF @pivch_Identificador='-1' OR @piint_ProId=-1
SET @piint_ProId=NULL
SET @piint_ProId=ISNULL(@piint_ProId,-1)
SELECT @vint_Hijos = (SELECT COUNT(PRO_ID) FROM T_TIE_PRODUCTO WITH(NOLOCK)
WHERE ISNULL(PRO_ID_PADRE,-1)= @piint_ProId --AND JER_VISIBLE_MENU='S'
AND PRO_ESTADO<>'I' AND ARE_CODIGO=@piint_AreCodigo)
IF @vint_Hijos>0
BEGIN
SET @vint_Hijos1=@vint_Hijos
SET @vint_ProIdPadre=(SELECT TOP 1 PRO_ID_PADRE FROM T_TIE_PRODUCTO WITH(NOLOCK) WHERE PRO_ID=@piint_ProId)
DECLARE @vtbl_Descendencia
TABLE (PRO_ID_PADRE int, PRO_ID int, PROFUNDIDAD tinyint)
INSERT INTO @vtbl_Descendencia
SELECT A.PRO_ID_PADRE, A.PRO_ID, 1
FROM T_TIE_PRODUCTO A WITH(NOLOCK)
WHERE ISNULL(PRO_ID_PADRE,-1) = @piint_ProId
AND A.PRO_ESTADO<>'I' --AND A.PRO_TIPO<>'C'
AND A.ARE_CODIGO=@piint_AreCodigo
WHILE @@ROWCOUNT>0
BEGIN
INSERT INTO @vtbl_Descendencia
SELECT A.PRO_ID_PADRE, A.PRO_ID, B.PROFUNDIDAD+1
FROM T_TIE_PRODUCTO A WITH(NOLOCK)
INNER JOIN @vtbl_Descendencia B ON B.PRO_ID=A.PRO_ID_PADRE
WHERE A.ARE_CODIGO=@piint_AreCodigo
AND A.PRO_ESTADO<>'I' --AND A.PRO_TIPO<>'C'
AND NOT EXISTS (SELECT D.PRO_ID FROM @vtbl_Descendencia D WHERE D.PRO_ID=A.PRO_ID)
END
IF @pivch_BusquedaHtmlEnc<>@pivch_Busqueda AND LEN(@pivch_BusquedaHtmlEnc)>0
SET @pivch_Busqueda = '('+@pivch_Busqueda+') OR ('+@pivch_BusquedaHtmlEnc+')'
SELECT PRO.PRO_ID,
PRO.ENT_ID,
PRO_ID_PADRE = ISNULL(PRO.PRO_ID_PADRE,-1),
PRO_NOMBRE_PADRE=ISNULL((SELECT PRO_NOMBRE FROM T_TIE_PRODUCTO WITH(NOLOCK) WHERE PRO_ID = PRO.PRO_ID_PADRE),''),
PRO_CODIGO = ISNULL(PRO.PRO_CODIGO,''),
PRO.PRO_NOMBRE,
PRO.PRO_TIPO,
PRO_DESTAQUE = ISNULL(PRO.PRO_DESTAQUE,'N'),
PRO_MONEDA = ISNULL(PRO.PRO_MONEDA,0),
PRO_MONEDA_SIMBOLO = (SELECT MON_SIMBOLO FROM T_TIE_MONEDA WITH(NOLOCK) WHERE MON_CODIGO = PRO.PRO_MONEDA),
PRO_PRECIO = ISNULL(PRO.PRO_PRECIO,0),
PRO_BREVE_DESCRIPCION = ISNULL(PRO.PRO_BREVE_DESCRIPCION,''),
PRO_RUTA_IMAGEN_ASOCIADA = ISNULL(PRO.PRO_RUTA_IMAGEN_ASOCIADA,''),
PRO_HABILITA_OFERTA= ISNULL(PRO.PRO_HABILITA_OFERTA,'N'),
PRO_PRECIO_OFERTA= ISNULL(PRO.PRO_PRECIO_OFERTA,0),
PRO_STOCK_ACTUAL = ISNULL(PRO.PRO_STOCK_ACTUAL,0),
PRO_HABILITA_STOCK = ISNULL(PRO.PRO_HABILITA_STOCK,'N'),
KEY_TBL.RANK
FROM T_TIE_PRODUCTO PRO WITH(NOLOCK)
INNER JOIN @vtbl_Descendencia c on c.PRO_ID=PRO.PRO_ID
INNER JOIN CONTAINSTABLE (T_TIE_PRODUCTO,*, @pivch_Busqueda) AS KEY_TBL
ON PRO.PRO_ID = KEY_TBL.[KEY]
WHERE (@piint_NivelMaximo=0 OR PROFUNDIDAD<=@piint_NivelMaximo)
AND PRO.ARE_CODIGO = @piint_AreCodigo
AND PRO.PRO_ESTADO<>'I' AND PRO.PRO_TIPO<>'C'
ORDER BY KEY_TBL.RANK DESC
END
ELSE
SELECT PRO_ID,
PRO_ID_PADRE,
PRO_NOMBRE_PADRE='',
PRO_CODIGO,
PRO_NOMBRE,
PRO_TIPO,
PRO_DESTAQUE,
PRO_MONEDA,
PRO_MONEDA_SIMBOLO='',
PRO_PRECIO,
PRO_BREVE_DESCRIPCION,
PRO_RUTA_IMAGEN_ASOCIADA,
RANK=''
FROM T_TIE_PRODUCTO
WHERE @piint_ProId=-999
|