|
|
#1 (permalink) |
|
Üyelik Tarihi: 18.07.2000
Yer: İstanbul
Yaş: 26
Mesaj: 103
|
sorun: değer döndürmeyen fonksiyon (asp)
şöyle bir fonksiyonum var:
Kod:
Function SonrakiAdim(intSayi)
'eğer kategori sayısı ile adım sayısı aynı ise ve secimvarmi koşulu sağlanmışsa diğer sayfaya yönlendirilir.
If (intSayi = intKategoriAdet) And SecimVarMi Then
SonrakiAdim = "Sayfa2.ASP"
Else
Set rsSonrakiKategori = strBaglanti.Execute("SELECT ID FROM Tablo WHERE Sira = "&intSayi+1)
If rsSonrakiKategori.eof Then
'kayıt bulunamadığı için fonksiyon tekrar çağırılıyor.
SonrakiAdim(intSayi+1)
Else
Set rsKatUrunAdet = strBaglanti.Execute("SELECT COUNT(*) FROM Tablo2 WHERE ID = "&rsSonrakiKategori(0))
If rsKatUrunAdet(0) = 0 Then
'ürün bulunamadığı için fonksiyon tekrar çağırılıyor.
SonrakiAdim(intSayi+1)
Else
SonrakiAdim = "?Adim="&intSayi+1
End If
End If
End If
End Function
![]() anket tarzı bir betik olacak. kullanıcı bir hoşgeldin sayfasından sonra çeşitli kategorilerdeki seçimleri sırayla geçebilecek. kategori sayısı belli olmadığından, daha da önemlisi bir kategori seçim öğelerine kesin sahip olmayacağından yapmak istediğim bir sonraki kategoriye geçmek için oluşturulacak bağlantı adresinin kırık olmayacağından emin olmak. yani tıklanacak ileri butonu için verilen kategori adresi içi dolu birşeyler olmalı. bunun için de bu fonksiyon SonrakiAdim(1) şeklinde çağırıldığında bir sonraki dolu kategorinin sıra numarasını getirmeli. fonksiyona değerin atandığı satırlarda aynı değerler yazdırılabiliyor ama fonksiyon bu değeri getirmiyor. hatta sanki ben onu çağırmamışım gibi hiçbirşey getirmiyor ![]() yol gösterici biri olabilirse sevinirim. |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,912
|
Re: sorun: değer döndürmeyen fonksiyon (asp)
recursive fonksiyonlar çağrılırken, geri dönen değeri bir değişkene atamak gerekir. ikinci nokta ise, özellikle fonksiyonlar değer dönderirken, dönecek degeri bir değişkene atayıp, en son değeri geri göndermek kod takibi açısından daha doğru olur.
Kod:
Function SonrakiAdim(intSayi)
returnValue = ""
'eğer kategori sayısı ile adım sayısı aynı ise ve secimvarmi koşulu sağlanmışsa diğer sayfaya yönlendirilir.
If (intSayi = intKategoriAdet) And SecimVarMi Then
returnValue = "Sayfa2.ASP"
Else
Set rsSonrakiKategori = strBaglanti.Execute("SELECT ID FROM Tablo WHERE Sira = "&intSayi+1)
If rsSonrakiKategori.eof Then
'kayıt bulunamadığı için fonksiyon tekrar çağırılıyor.
returnValue = SonrakiAdim(intSayi+1)
Else
Set rsKatUrunAdet = strBaglanti.Execute("SELECT COUNT(*) FROM Tablo2 WHERE ID = "&rsSonrakiKategori(0))
If rsKatUrunAdet(0) = 0 Then
'ürün bulunamadığı için fonksiyon tekrar çağırılıyor.
returnValue = SonrakiAdim(intSayi+1)
Else
returnValue = "?Adim="&intSayi+1
End If
End If
End If
SonrakiAdim = returnValue
End Function
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 18.07.2000
Yer: İstanbul
Yaş: 26
Mesaj: 103
|
Re: sorun: değer döndürmeyen fonksiyon (asp)
mesajı attıktan sonra taklalar atıp kodu 1-2 satır daha uzatarak çözmüştüm ama yapmak istediğimi göstererek bana yardımcı olduğun için çok teşekkürler. kendi bulduğumu verdiğin kod ile düzelttim.
|
|
|
|
Zoque'a hoşgeldiniz!