parametre döndürme hatası

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

parametre döndürme hatası

Mesaj gönderen adelphiforumz »

Merhabalar
Buna benzer bir konuyu daha önce delphi tarafında kendim sorup kendim cevaplamıştım .
Fakat Ornek 1'i Ornek 2 gibi değiştirince sistem çalışmaz hale geldi.
Yapmak istediğim parametre ile gönderdiğim değer eğer daha önceden dosyada var ise kayıt insert edilmesin ve sonuc 0 dönsün
kayıt yok ise SELECT scope_identity() AS SONUC komutu ile sonuc icerisine identy kolonunun son değeri dönsün
fakat bir türlü başaramadım. Nerede hata yapıyorum bilenlerin yardımcı olmasını rica ederim.

----- ORNEK 1 ------------
USE [TESTDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SPI_TEST]
@XF varchar(50)
AS
begin
INSERT INTO TTEST(XF) Values(@XF)
SELECT scope_identity() AS SONUC
END

----- ORNEK 2 ------------
USE [TESTDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[SPI_TEST]
@XF varchar(50)
AS
begin
SELECT * FROM TTEST WHERE XF = @XF
IF (@@ROWCOUNT = 0)
begin
INSERT INTO TTEST(XF) Values(@XF)
SELECT scope_identity() AS SONUC
end
SELECT 0 AS SONUC
END
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: parametre döndürme hatası

Mesaj gönderen aslangeri »

s.a.
ben şöyle yapıyorum

Kod: Tümünü seç

alter procedure...
begin
declare @abc int
select @abc=count(*) from tablo where alan=parametre
if (@abc=0) 
begin
insert işlemler
end else
begin
  elsede yapılacak işlemler
end
bide böyle dene.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: parametre döndürme hatası

Mesaj gönderen adelphiforumz »

teşekkürler çalıştı
Sorunun nedeni anlamak için birşey soracağım
buna benzer bir şekilde bende @@rowcount kullanarak denedim fakat olmadı
işlemin sonucunu bir değişkene atmakla @@rowcount arasındaki fark nedir biliyormusunuz.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: parametre döndürme hatası

Mesaj gönderen aslangeri »

tam olarak emin olmamakla beraber @@rowcount son yapılan işlemden etkilenen satır sayısını veriyor olması lazım.
yaptığın select işlemnden geriye kayıt dönmediği için mikropsoft değişkeni set etmemiş olabilir.
eğer senin örneğinde select işleminden önce @@rowcount u 0 a set edebilirsen ve kodlar çalışırsa demekkü böyle bir bug varmış
veya bilerek böyle yapmışlar.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: parametre döndürme hatası

Mesaj gönderen adelphiforumz »

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Cevapla