FIELDNAME değişken olunca field in değerini listelemiyor

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ı
softdestek
Üye
Mesajlar: 155
Kayıt: 17 Eyl 2010 03:53

FIELDNAME değişken olunca field in değerini listelemiyor

Mesaj gönderen softdestek »

Kod: Tümünü seç

use deneme
DECLARE @DEGERNEW VARCHAR(3000) 
DECLARE @NEWVALUE VARCHAR(3000)

set @NEWVALUE=N'GUEST_NAME'


select   @DEGERNEW=@NEWVALUE FROM MYNEW
PRINT @DEGERNEW 

SET @DEGERNEW = (select TOP 1 GUEST_NAME FROM MYNEW);
SELECT @DEGERNEW;

SET @DEGERNEW = (select TOP 1 @NEWVALUE FROM MYNEW);
SELECT @DEGERNEW;
yukardaki kodda:

Kod: Tümünü seç

SET @DEGERNEW = (select TOP 1 GUEST_NAME FROM MYNEW); 
PRINT @DEGERNEW 


sql çalışınca GUEST_NAME alanının değeri olan
VEDAT PALA listeleniyor fakat field adını değişken kullanınca aşağıdaki kodda olduğu gibi

Kod: Tümünü seç

SET @DEGERNEW = (select TOP 1 @NEWVALUE FROM MYNEW);
PRINT @DEGERNEW 
bu kodu çalıştırnca ise GUEST_NAME değeri değilde
sadece SET @DEGERNEW = (select TOP 1 @NEWVALUE FROM MYNEW);
çıktısı GUEST_NAME oluyor çıktı bunun sebebi nedir?

Yapmak istediğim şey field adını değişken yapıp fieldin değerini yazdırmak
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: FIELDNAME değişken olunca field in değerini listelemiyor

Mesaj gönderen mkysoft »

SQL'i komple değişken olarak oluşturup EXEC ile çağırabilirsiniz.

EXEC(N'SET @DEGERNEW = (select TOP 1 ' + @NEWVALUE + N' FROM MYNEW);');
Kullanıcı avatarı
softdestek
Üye
Mesajlar: 155
Kayıt: 17 Eyl 2010 03:53

Re: FIELDNAME değişken olunca field in değerini listelemiyor

Mesaj gönderen softdestek »

Daha önceden de denemiştim bunu.Aynı hatayı veriyor
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: FIELDNAME değişken olunca field in değerini listelemiyor

Mesaj gönderen mkysoft »

Çünkü EXEC yeni bir fonksiyon olduğundan değişkenleri görmüyor. Internal table kullanılabilir yada aşağıdaki gibi yapılabilir:

declare @NEWVALUE varchar(50) = 'Alan1';
declare @DEGERNEW varchar(50);
declare @SQL nvarchar(4000);


SET @SQL = N'select TOP 1 @DEGERNEW = ' + @NEWVALUE + N' FROM Tablom;';
exec sp_executesql @SQL, N'@DEGERNEW varchar(50) out', @DEGERNEW out
select @DEGERNEW
Kullanıcı avatarı
softdestek
Üye
Mesajlar: 155
Kayıt: 17 Eyl 2010 03:53

Re: FIELDNAME değişken olunca field in değerini listelemiyor

Mesaj gönderen softdestek »

Bu şekilde oldu teşekkür ederim gösterdiğiniz ilgi için...
Cevapla