SQL Sorgu HATASI

Gönderen Konu: SQL Sorgu HATASI  (Okunma sayısı 1254 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
SQL Sorgu HATASI
« : 23.08.2007, 14:10 »
Merhaba,

Arkadaşlar arada sırada da biz soralım değil mi :)

sqlde her zaman kullandığım query hataya düşüyor bunu çözemedim




DECLARE @HARF varchar (50)

DECLARE KOD CURSOR FOR
SELECT  top 1276 code FROM LG_004_ITEMS WHERE CODE<>'ÿ'
   OPEN KOD
   FETCH NEXT FROM KOD
      INTO @HARF
   WHILE @@FETCH_STATUS=0
   BEGIN
      SELECT @HARF
      FETCH NEXT FROM KOD INTO @HARF
   END
CLOSE KOD
DEALLOCATE KOD


ÇALIŞAN KOD BU Her hangi bir hata almıyorum, yalnız Selectin sayısını arttırınca yani top 1277 yapınca



Resource is low, some results are dropped.

bu hatayı alıyorum

1276 olunca vermiyor.

başka bir database de ise
bu sayı değişiyor
2282 de raporu alıyorum
2283 de alamıyorum aynı hatayı veriyor.

bu işin içinden çıkamadım.


Veya yapmak istediğimi yazıyım siz bana başka bir yol gösterin.

yapmak istediğim müşterimin stok kodları ayarlanmış hepsi nokta ile ayrılıyor yalnız sıkıntı şu ki kırımlar arasında karakter sayısı farklı olabiliyor yani bir kod

07.AY.AG.450.03

Diğeri ise

07.SM.ÇKT.5678.02

olabiliyor bu yüzden bunları grup olarak çekmem lazım tek ayracım noktalar fakat noktaları almak için cursor kullanırken böyle bir hata alıyorum.

Yardımlarınız için şimdiden teşekkürler, Kolay gelsin.
« Son Düzenleme: 23.08.2007, 14:21 Gönderen: Monsieur® »

Çevrimdışı Erdoğan

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 27
  • Bilgi Paylaşıldıkca Değer Kazanır.
Ynt: SQL Sorgu HATASI
« Yanıtla #1 : 24.08.2007, 11:43 »
Selamlar
fetch işlemiyle select kullanırsanız transac sqldeki gride tablo olarak sonuç seti dökülür. Aldığın bir hata değil ekrana dökülebilen tablo sayısının tamamını içermediğine dair uyarı mesajıdır. Bu sayı pc den pc ye databaseden database değişir ama işlemle ilgili herhangi bir hata değildir. Yani yaptığınız işlemler tamamlanır. Fakat her fetch işlem sonucu bir tablo olarak gride yazılır ;) İşlem hafızada işlenir ve pc hafızasına göre ekrana tablolar olarak dökülür.
Bir tablonun içerisindeki kayıt sayısı değil gridinizin hafızaya bağlı alabileceği tablo sayısıdır. ;)

Kolay Gelsin
Çalışmalarında başarılar.
« Son Düzenleme: 24.08.2007, 11:45 Gönderen: Erdoğan »

Çevrimdışı Monsieur®

  • LogoDestek Yönetim
  • Logo Uzmanı
  • *****
  • Karma: 38
Ynt: SQL Sorgu HATASI
« Yanıtla #2 : 24.08.2007, 11:52 »
Merhaba,

Teşekkürler hocam yaa, bende eğer bu bir hataysa bunun çözümü mutlaka vardır sql de böyle bir ey olamaz diyordum.
Peki yapmak istediğimi başka türlü nasıl yapabilirim, bildiğiniz daha kolay bir yol var mı?

Kolay gelsin
« Son Düzenleme: 24.08.2007, 11:54 Gönderen: Monsieur® »

Çevrimdışı Erdoğan

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 27
  • Bilgi Paylaşıldıkca Değer Kazanır.
Ynt: SQL Sorgu HATASI
« Yanıtla #3 : 24.08.2007, 12:32 »
Selamlar
Kullanım mantığı açısından sonra bunun üzerinden detaylandırabiliriz.

select CODE,CHARINDEX('.',CODE,1),CHARINDEX('.',CODE,LEN(CHARINDEX('.',CODE,1))),
SUBSTRING(CODE,CHARINDEX('.',CODE,1),CHARINDEX('.',CODE,LEN(CHARINDEX('.',CODE,1))))
from LG_xxx_ITEMS

Burada CHARINDEX le noktanın kaçıncı karekter olduğunu bulabilirsin herhangi bir döngüye gerek kalmadan. ;)
sonra SUBSTRING le istediğin noktadan itibaren grupla hem daha hızlı gruplarsın ;)
Zorunlu olmadıkca fetch kullanmadan çözmek en iyisidir. fetch de sonuçlar performans açısından yavaşlar.
İşine yararmı bir bak sonra istersen tam istediğini detaylandır. Kodu tamamlayalım. :)
Kolay Gelsin