• 07-01-2010, 00:23:01
    #1
    HERKESE İYİ AKŞAMLAR

    ASP.NET PROJEMDE ÜRÜNLERİ LİSTELEMEK İÇİN SQL TARAFINDA PROSEDÜRLER YAZDIM.öncelikle ürün id ye ait resimi buluyorum aşağıdaki function la

    ALTER FUNCTION [dbo].[urunResimAdiBul](@urunId int)
    RETURNS VARCHAR(50)
    AS
    BEGIN
    DECLARE @SAY INT
    SET @SAY = (SELECT COUNT(urun_id) FROM tbl_urun_resimEkle WHERE urun_id=@urunId)
    DECLARE @SONUC VARCHAR(50)
    IF (@SAY > 0)
    BEGIN
    SET @SONUC = (SELECT TOP 1 resim_adi,resimtitle FROM tbl_urun_resimEkle WHERE urun_id=@urunId)
    END
    ELSE
    BEGIN
    SET @SONUC = 'NoImage.gif'
    END
    RETURN @SONUC
    END
    resimleri kaydettiğim tabloda resim ile birlikte title (alt)sinide aynı tabloda ayrı bir sütuna kaydediyorum.Ama yukardaki functionu yazınca

    Msg 116, Level 16, State 1, Procedure urunResimAdiBul, Line 11
    Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.


    bu şekilde bir hata veriyo anladığım kadarıyla bitane veri yazmamı istiyor ama nası yapıcamı çözemedim ayrıca ürünleri listeleme prosedürümde aşağıdaki şekildedir

    ALTER PROCEDURE [dbo].[Yeni_urun_Listele]
    AS
    SET NOCOUNT ON;
    SELECT top 9 dbo.urunResimAdiBul(U.id) As resim_adi,U.id,U.title,U.kategori_id,U.tour_adi,U. tour_kodu,U.tour_aciklama,U.duration,U.covers,U.it inerary,U.gunler,U.dahiller,U.konak_otel,U.fiyat_b irimi,U.single_fiyat,U.double_fiyat,U.triple_fiyat ,U.harita_adi,U.haritatitle FROM tbl_paketturEkle U
    WHERE U.durum= 1 and U.anasayfada= 0
    ORDER BY U.id desc

    bu prosedürdede sadece bir tane veriyi kabul ediyo ya resim_adi ya resimtitle

    yani benim hatam anladığım kadarıyla urunResimAdiBul functionumda sorun var

    lütfen bi yardım edin

    Herkese şimdiden teşekkürler
  • 07-01-2010, 08:55:39
    #2
    Yokmu bana bi yardımcı olacak arkadaş
  • 07-01-2010, 12:55:27
    #3
    50 karakterlik bir varchar tanımlayıp @SONUC
    resim_adi,resimtitle ile 2 kolon birden çekmişsiniz. tek veri çekin.

    yada her veri için uygun bir değişken belirleyin.
    yada bunu sql tarafında değil kod tarafında yapın ve dönen değerleri projenizde görmek istediğiniz yerlere atayın.
  • 07-01-2010, 16:52:24
    #4
    elroy adlı üyeden alıntı: mesajı görüntüle
    50 karakterlik bir varchar tanımlayıp @sonuc
    resim_adi,resimtitle ile 2 kolon birden çekmişsiniz. Tek veri çekin.

    Yada her veri için uygun bir değişken belirleyin.
    Yada bunu sql tarafında değil kod tarafında yapın ve dönen değerleri projenizde görmek istediğiniz yerlere atayın.

    teşekkürler elroy arkadaşım