Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » ASP » SP ile Veri Ekleme Sorunu: has too many arguments specified


Yanıt
 
LinkBack Seçenekler
Old 12.04.2008   #1 (permalink)
divemaster
 
Ü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ı:
Kod:
ALTER PROCEDURE [dbo].[sp_deneme]
(
    @TableName nvarchar (100),
    @FieldName nvarchar (200),
	@FormName nvarchar (200)
)

AS

DECLARE @SQL AS nvarchar(2000)

BEGIN

      SET @SQL = 'INSERT INTO '+@TableName+'('+@FieldName+') VALUES('+@FormName+')'

EXEC(@SQL)
END

Mesaj divemaster tarafından 12.04.2008 (21:57) yeniden düzenlendi..
divemaster şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.04.2008   #2 (permalink)
absconder
 
absconder's Avatar
 
Ü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 &"'")
şeklinde çağırmanız gerekmektedir. ayrıca formdeger değişkeninin içerebileceği tek tırnak değerini uygun şekilde gündermeniz gerekiyor.

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
absconder şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.04.2008   #3 (permalink)
divemaster
 
Ü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&"' '
Benim asıl içinden çıkamadığım kısım execute içine yazdırdığım değerlerin nasıl olacağı. Buraya doğru yazdıramadığım için de baya bir sorun yaşıyorum.

Çıktımın tam olarak nasıl olması gerekiyor?
divemaster şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.04.2008   #4 (permalink)
absconder
 
absconder's Avatar
 
Ü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, "'", "|") &"'")
şeklinde yapıp,

Kod:
SET @SQL = 'INSERT INTO '+@TableName+'('+ REPLACE(@FieldName, '|', '''') +') VALUES('+REPLACE(@FormName, '|', '''') +')'
şeklinde düzenlerseniz sanırımçalışacaktır. yalnız, çok doğru birçözümgibi gelmiyor, her tablo için özel sp yaparsanız kontrol etmeniz sanırım daha kolay 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
absconder şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.04.2008   #5 (permalink)
divemaster
 
Ü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.
int bir kolona string göndermeye çalıştığımız için sorun çıkıyor. Aynı array'dan geldiği için böyle bir sorun çıkıyor. Bu durumda int için ayrı string için ayrı for next döngüsü kurmak gerekiyor sanırım.

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..
divemaster şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 14.04.2008   #6 (permalink)
absconder
 
absconder's Avatar
 
Ü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
absconder şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Yanıt

Etiketler
stored procedure , veri ekleme



 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

UslanmaM baktabul.com

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css dijital div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
ADnet Reklamları [ Siz de reklam verin  » ]
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.2 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC5

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 13:42.