Kod: Tümünü seç
ALTER PROCEDURE [dbo].[sp_urunleri_getir]
@firmaid int,
@orderby varchar(10),
@dir varchar(5),
@q varchar(50),
@cat varchar(30),
@m varchar(30),
@yazar varchar(40),
@marka varchar(40)
AS
BEGIN
declare @SQL nvarchar(800) set @SQL=N'SELECT stkID,stkAd,kod4Ad,mrkAd,anaBarkod,fiyatS,fiyatS bfiyat,stok FROM View_urunler where '
if (@m='yeni')set @SQL+=N' stkID in(select top 6 stkID from View_urunler where resvar=1 and stok>0 order by gTarih desc)'
else
set @SQL+='1=1 '+dbo.fn_kategorisql(@cat)+dbo.fn_markasql(@marka)
exec sp_executesql @sql,N'@frmid int,@frmgrpid smallint,@q varchar(50),@q1 varchar(50),@q2 varchar(50),@cat varchar(10),@cat2 varchar(10),@barkod varchar(50),@yazar varchar(40),@marka varchar(40)',@frmid=@firmaid,@frmgrpid=@firmagrpID,@q=@q,@q1=@q1,@q2=@q2,@cat=@cat,@cat2=@cat2,@barkod=@barkod,@yazar=yazar,@marka=marka
END
Kod: Tümünü seç
ALTER FUNCTION [dbo].[fn_markasql] (@marka varchar(40))
RETURNS nvarchar(300) AS
BEGIN
if (@marka='%') return N'and 1=1'else
if (len(@marka)>1) return N' and mrkAd='+@marka
return 'and 1=1'
END
DECLARE @RC int
DECLARE @firmaid int
DECLARE @orderby varchar(10)
DECLARE @dir varchar(5)
DECLARE @q varchar(50)
DECLARE @cat varchar(30)='10.6'
DECLARE @m varchar(30)
DECLARE @yazar varchar(40)
DECLARE @marka varchar(40)='Aktif Yayinevi-istanbul'
EXECUTE @RC = [nildab2c].[dbo].[sp_urunleri_getir]
@firmaid
,@orderby
,@dir
,@q
,@cat
,@m
,@yazar
,@marka
GO
error :
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Yayinevi'.
problem Incorrect syntax near 'Yayinevi'SELECT [dbo].[fn_markasql] ('Aktif Yaynevi-istanbul')
return
and mrkAd=Aktif Yaynevi-istanbul
problem :if (len(@marka)>1) return N' and mrkAd='+@marka
söle bir komut olosa işi çözecek :if (len(@marka)>1) return N' and mrkAd='+QUOTE(@marka)
sorun duzelecek
çıkamadım ısın ıcınden yardım lutfen