|
|
#1 (permalink) |
|
Üyelik Tarihi: 27.01.2007
Yer: -
Mesaj: 108
|
SP ile Veri Ekleme Sorunu: has too many arguments specified
Merhaba arkadaşlar,
Bir türlü aşağıdaki sorunu aşamadım. Sayfadan gelen değerlerle sp de veri girişi yapmak istiyorum ancak sürekli aşağıdaki hatayı alıyorum. "Procedure or function sp_deneme has too many arguments specified." sorun nerede olabilir? ASP Kod Tarafı: Kod:
'Tanımlamalar tabloAdi= "tbl_makale" sorguAdi="makaleID" sorguID= request(sorguAdi) 'INSERT sorgusuna girecek tablo isimleri ve form değerlerini oluşturuyorum myColumn = "kategoriID,blog,baslik,detay,keywords,uyeID,tarih,aktif" myArray = Split(myColumn,",") For cl=0 to UBound(myArray) tabloDeger = myArray(cl) If cl <> UBound(myArray) Then tabloDeger = tabloDeger + ", " tabloKolon = tabloKolon + tabloDeger Next For fr=0 to UBound(myArray) formDeger = " '""& " & myArray(fr) & "&"" ' " If fr <> UBound(myArray) Then formDeger = formDeger + ", " formKolon = formKolon + formDeger Next 'Gelen değerleri SP ye yolluyorum bag.execute("sp_deneme "& tabloAdi &", "& tabloKolon &", "& formKolon ) SP Tarafı: Mesaj divemaster tarafından 12.04.2008 (21:57) yeniden düzenlendi.. |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,874
|
Re: SP ile Veri Ekleme Sorunu: has too many arguments specified
bag.execute yerine response.write yazarsanız sorunun nedenini görebilirsiniz.
sp_deneme makaleID, kategoriID,blog,baslik,detay,keywords,uyeID,tarih, aktif, .................. gibi çağırıyorsunuz. Kod:
bag.execute("sp_deneme '"& tabloAdi &"', '"& tabloKolon &"', '"& formKolon &"'")
ikincisi 2 döngü yapmanızı gereksiz gördüm, tek döngü ile yapılablir gibi duruyor. verilerin eşit sayıda olduğunu garanti edebilirsiniz bu şekilde.
__________________
"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: 27.01.2007
Yer: -
Mesaj: 108
|
Re: SP ile Veri Ekleme Sorunu: has too many arguments specified
Dediğiniz gibi yaptığımda write çıktısı aşağıdaki gibi oluyor ve " Incorrect syntax near '& kategoriID&'. " hatası alıyorum
Kod:
sp_deneme 'tbl_makale', 'kategoriID, blog, baslik, detay, keywords, uyeID, tarih, aktif', ' '"& kategoriID&"' , '"& blog&"' , '"& baslik&"' , '"& detay&"' , '"& keywords&"' , '"& uyeID&"' , '"& tarih&"' , '"& aktif&"' ' Çıktımın tam olarak nasıl olması gerekiyor? |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,874
|
Re: SP ile Veri Ekleme Sorunu: has too many arguments specified
sp tring parametresi ' ' arasında olmalıdır.
sp_deneme 'p1_value', p2_value' gibi. ancak parametreleriniz birden fazla değer taşıdığınızdan dolyı sorun çıkmakta. Kod:
'Tanımlamalar tabloAdi= "tbl_makale" sorguAdi="makaleID" sorguID= request(sorguAdi) 'INSERT sorgusuna girecek tablo isimleri ve form değerlerini oluşturuyorum myColumn = "kategoriID,blog,baslik,detay,keywords,uyeID,tarih,aktif" myArray = Split(myColumn,",") For cl=0 to UBound(myArray) tabloDeger = myArray(cl) If cl <> UBound(myArray) Then tabloDeger = tabloDeger + ", " tabloKolon = tabloKolon + tabloDeger formDeger = " '""& " & myArray(cl) & "&"" ' " If cl <> UBound(myArray) Then formDeger = formDeger + ", " formKolon = formKolon + formDeger Next 'Gelen değerleri SP ye yolluyorum bag.execute("sp_deneme "& tabloAdi &", '"& replace(tabloKolon, "'", "|") &"', '"& replace(formKolon, "'", "|") &"'") Kod:
SET @SQL = 'INSERT INTO '+@TableName+'('+ REPLACE(@FieldName, '|', '''') +') VALUES('+REPLACE(@FormName, '|', '''') +')'
__________________
"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 |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 27.01.2007
Yer: -
Mesaj: 108
|
Re: SP ile Veri Ekleme Sorunu: has too many arguments specified
Bu durumda da aşağıdaki hatayı alıyorum:
Kod:
Conversion failed when converting the varchar value '"& kategoriID&" ' to data type int. Asıl amacımın "her tablo için ayrı ayrı işlem yaptırmamak" olduğu için bu tür bir yöntemin daha sağlıklı olacağını düşünüyordum. Eğer bu yöntem ayrı ayrı sp açmaktan dezavantajlıysa kullanmam ter tabloya ayrı sp açarım. Fakat kullanmasam bile bunun nasıl yapılabileceği konusunda da buraya kadar gelmişken öğrenmeden bırakmak da istemiyorum Son olarak da bir şunu öğrenmek istiyorum: sp ile gönderdiğim verilerin güvenli olduğundan bahsediliyor. Yani ekstra bir işleme gerek kalmadan parametre ile gönderdiğim veriler süzülerek gidiyor diye biliyordum. Ancak daha en zararlı karakter tek tırnakta sorun çıkıyor ve fonksiyonla replace ettirmek durumunda kalıyorum. Burada bir hata mı söz konusu; ben mi yanlış biliyorum yoksa yanlış bir uygulamam mı var? Mesaj divemaster tarafından 13.04.2008 (18:49) yeniden düzenlendi.. |
|
|
|
|
|
#6 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,874
|
Re: SP ile Veri Ekleme Sorunu: has too many arguments specified
elbette ki sp kullanmanız daha güvenli. son karşılaştığınız hata buna işaret ediyor.
ancak siz bütün insert işlemlerini tek sp üzerinden halletmeye çalıştığınız için parametre olarak toptan string aktarıyorzunuz. mantığınız bu şekilde. bu noktada sp kullanmanın avantajı ortadan kalkıyor. sorun, uygulama algoritmanızdan kaynaklanıyor. tavsiyem her tablo için sp kullanmanız olacaktır.
__________________
"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 |
|
|
|
Zoque'a hoşgeldiniz!