webForumDet fria alternativet

Stored pro med sökfunktion.

10 svar · 233 visningar · startad av erka

erkaMedlem sedan dec. 19996 522 inlägg
#1

Jag är ju inte en direkt klippa på storedprocedures och ska lägga över en sökfunktion i en sådan. fritextsökning.

nu har jag tex

WHERE DesignName LIKE '%" DesignID "%'

Men hur sjutton skriver jag om den till en storedprocedur, alltså typ så här

@DesignId
övriga sqlfrågan
Where DesignName LIKE @DesignId

Men det blir ju bara en exakt textsök och inte fri textsök. Har jag rätt om jag säger något med + tecknet ?

Förstår ni vad jag menar ?

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 464 inlägg
#2
Where DesignName LIKE '%' + @DesignId
+ '%'

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19996 522 inlägg
#3

Tack än en gång :e

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19996 522 inlägg
#4

Har stött på ett till problem nu. Nu har jag en sp som ser ut så här

CREATE PROCEDURE [sp_VpArticleNoSearch]
@DesignID varchar(100)
 AS

SELECT     dbo.vpVariants.FK_DesignID, dbo.vpVariants.PK_ArticleNumber, dbo.vpDesign.FK_ModelID, dbo.vpDesign.DesignName, dbo.vpDesign.DesignCode, 
                      dbo.vpDesign.PK_DesignID, dbo.vpDesign.PublicOnWeb, dbo.vpVariants.PublicOnWeb AS Expr1
FROM         dbo.vpVariants INNER JOIN
                      dbo.vpDesign ON dbo.vpVariants.FK_DesignID = dbo.vpDesign.PK_DesignID
WHERE     (dbo.vpDesign.PublicOnWeb = 1) AND (dbo.vpVariants.PublicOnWeb = 1) AND (dbo.vpVariants.PK_ArticleNumber LIKE '%' + @DesignId + '%')
ORDER BY dbo.vpVariants.PK_ArticleNumber ASC
GO

Sen när jag anropar den för att få fram resultatet av en sökning ifrån ett text fält så fungerar det bra, tills jag skriver in ett mellanslag någonstanns i sökrutan då får jag felmeddelandet

Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near

På tecknet efter mellanslaget, varför beteer den sig så här ? vad ska jag göra för att åtgärda problemet, jag har sökt men hittar inga svar.

Hjälp ;)

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19996 522 inlägg
#5

dbo.vpVariants.PK_ArticleNumber är en nvarchar, tror jag måste ovandla söksträngen eller ?

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

erkaMedlem sedan dec. 19996 522 inlägg
#6

Hmm det verkar ju inte vara något med tabellerna eller fälten och de olika värdena utan är ju sqlfrågan som "fuckas upp" när jag skriver ett mellan rum i sökordet.

Det är ju sp:n som är felskriven eftersom följande kod fungerar

			strSQL = "SELECT dbo.vpDesign.PK_DesignID, dbo.vpModel.ModelName, dbo.vpDesign.DesignName, dbo.vpDesign.Picture "_
				& "FROM dbo.vpModel INNER JOIN dbo.vpDesign ON dbo.vpModel.PK_ModelID = dbo.vpDesign.FK_ModelID "_
				& "WHERE (dbo.vpModel.PublicOnWeb = 1) AND (dbo.vpDesign.PublicOnWeb = 1) AND (dbo.vpDesign.DesignName LIKE '%" & intDesignID & "%') "_
				& "OR (dbo.vpModel.ModelName LIKE  '%" & intDesignID & "%') ORDER BY dbo.vpDesign.DesignName ASC"

Om jag gör det med en vanligt sqlfråga då.

Vad är fel i storedproceduren ? hur ska jag skriva om variabeln där i ? tack

har hittat lite på 4guys som säger att man ska skriva ''%' +@designID+ '%'' men det fungerar inte att sätta in alls.

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

[Redigerat av erka den 01 okt 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Hur ser ditt anrop till proceduren ut?

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19996 522 inlägg
#8

larsg:
intDesignID = Request.Form("strSearch")
strSQL = "sp_VpArticleNoSearch " & intDesignID

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

LarsGMedlem sedan dec. 200012 464 inlägg
#9
strSQL = "sp_VpArticleNoSearch '" & intDesignID & "'"

------------------
essentitia preter non sans multiplicandum

LarsGMedlem sedan dec. 200012 464 inlägg
#10

eller om du vill vara helt säker

strSQL = "sp_VpArticleNoSearch '" & replace(intDesignID,"'","''") & "'"

------------------
essentitia preter non sans multiplicandum

erkaMedlem sedan dec. 19996 522 inlägg
#11

Tackar, ska testa direkt på jobbet i morgon, funkar bergis som vanligt när du rättat till saker och ting :e

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)