Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQL Sorguda Türkçe Sorunu
#21
(11-09-2020, Saat: 21:27)bydelphi Adlı Kullanıcıdan Alıntı: Prosedürün tam kodunu atarsanız bi inceleyelim

Procedure şu şekilde düzgün çalışıyor ama ne zaman "KOD_1" , "KOD_2" ,"KOD_3" , "KOD_4" , "KOD_5" "DEPO_KODU" , "SUBE_KODU"  açtığım da  rapor boş geliyor .

ALTER Proc [dbo].[Sp_Rapor1] 
( @STOK_KODU varchar(15) = null ,   
 @GRUP_KODU varchar(15) = null )
--  @KOD_1 varchar(15) = null )
--  @KOD_2 varchar(8) = null )
--@KOD_3 varchar(8) = null )
--@KOD_4 varchar(8) = null , 
--@KOD_5 varchar(8) = null ,
--@DEPO_KODU smallint = null ,
--@SUBE_KODU smallint = null )
as
begin

-- BURADA KARAKTER TEMİZLİĞİN YAPILIYOR
SET @STOK_KODU = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@STOK_KODU,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')
SET @GRUP_KODU = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@GRUP_KODU,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')
--SET @KOD_1 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@KOD_1,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')
--SET @KOD_2 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@KOD_2,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')
--SET @KOD_3 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@KOD_3,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')
--SET @KOD_4 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@KOD_4,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')
--SET @KOD_5 = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@KOD_5,'Ş','_'),'Ç','_'),'Ö','_'),'İ','_'),'G','_'),'Ü','_')

SELECT DISTINCT STOK_KODU,STOK_ADI,GRUP_KODU GKOD,SATIS_FIAT1,SATIS_FIAT2,SATIS_FIAT3,SATIS_FIAT4,ALIS_FIAT1,ALIS_FIAT2,ALIS_FIAT3,ALIS_FIAT4 
FROM TBLSTSABIT 
WHERE 
STOK_KODU LIKE '%'+COALESCE( NULLIF( @STOK_KODU , '') , STOK_KODU )+'%' AND  
    GRUP_KODU LIKE '%'+COALESCE( NULLIF( @GRUP_KODU , '') , GRUP_KODU )+'%'
 --         KOD_1 LIKE '%'+COALESCE( NULLIF( @KOD_1 , '') , KOD_1 )+'%' AND
--   KOD_2 LIKE '%' +COALESCE( NULLIF( @KOD_2 , '') , KOD_2 ) + '%' AND
--   KOD_3 LIKE '%'+COALESCE( NULLIF( @KOD_3 , '') , KOD_3 )+'%' AND
 -- KOD_4 LIKE '%'+COALESCE( NULLIF( @KOD_4 , '') , KOD_4 )+'%' AND
  --KOD_5 LIKE '%'+COALESCE( NULLIF( @KOD_5 , '') , KOD_5 )+'%' AND
          --DEPO_KODU =COALESCE( NULLIF( @DEPO_KODU , '') , DEPO_KODU ) AND
          --SUBE_KODU =COALESCE( NULLIF( @SUBE_KODU , '') , SUBE_KODU )  
end


GO
Cevapla
#22
Veritabanında girdiğiniz bütün kriterleri sağlayan kayıt yok diyor yani. WHERE koşulunda bir sorun görünmüyor zira. AND yerine OR ile deneyin bide.
WWW
Cevapla
#23
(12-09-2020, Saat: 09:45)esistem Adlı Kullanıcıdan Alıntı: Veritabanında girdiğiniz bütün kriterleri sağlayan kayıt yok diyor yani. WHERE koşulunda bir sorun görünmüyor zira. AND yerine OR ile deneyin bide.
Denedim kardeşim olmadı.

Bu da olmadı.
where
( STOK_KODU IS NULL or LIKE '%STOK_KODU'%' )
AND
( GRUP_KODU IS NULL or GRUP_KODU LIKE '%GRUP_KODU'%' )

(12-09-2020, Saat: 09:55)OZCANK Adlı Kullanıcıdan Alıntı:
(12-09-2020, Saat: 09:45)esistem Adlı Kullanıcıdan Alıntı: Veritabanında girdiğiniz bütün kriterleri sağlayan kayıt yok diyor yani. WHERE koşulunda bir sorun görünmüyor zira. AND yerine OR ile deneyin bide.
Denedim kardeşim olmadı.

Bu da olmadı.
where
( STOK_KODU IS NULL or LIKE '%STOK_KODU'%' )
AND
( GRUP_KODU IS NULL or GRUP_KODU LIKE '%GRUP_KODU'%' )

Normalde veritabanına select çektiğim zaman kriterler var.
Cevapla
#24
bu çalışan örneği bi incele .

IF OBJECT_ID('TABLO') IS NOT NULL DROP TABLE TABLO
GO
create table TABLO ( ID INT IDENTITY(1,1) PRIMARY KEY, ADI VARCHAR(60), ILI VARCHAR(60), MESLEGI VARCHAR(60), KAN VARCHAR(60), TIPI VARCHAR(60) )
GO
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('OSMAN','ANKARA','YAZILIM','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('AYŞE','İSTANBUL','MARKET','B','MAVİ')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('RIZA','İSTANBUL','BOŞ','B','SİYAH')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('YUSUF','ANKARA','YAZILIM','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('OSMAN','ANKARA','BOŞ','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('HALİL','MANİSA','YAZILIM','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('OSMAN','İSTANBUL','YAZILIM','0','SARI')
GO
IF OBJECT_ID('SP_ORNEK') IS NOT NULL DROP PROC SP_ORNEK
GO
CREATE PROC SP_ORNEK( @ADI VARCHAR(60), @ILI VARCHAR(60), @MESLEGI VARCHAR(60), @KAN VARCHAR(60), @TIPI VARCHAR(60)  ) 
AS
BEGIN
SELECT * FROM TABLO
WHERE
ISNULL(ADI,'') = COALESCE(NULLIF(@ADI,'') , ADI)
AND ISNULL(ILI,'') = COALESCE(NULLIF(@ILI,''),ILI)
AND ISNULL(MESLEGI,'') = COALESCE(NULLIF(@MESLEGI,''),MESLEGI)
AND ISNULL(KAN,'') = COALESCE(NULLIF(@KAN,''),KAN)
AND ISNULL(TIPI,'') = COALESCE(NULLIF(@TIPI,''),TIPI)
END
GO

--tüm kayıtlar
EXEC SP_ORNEK @ADI = '', @ILI = '', @MESLEGI = '', @KAN = '', @TIPI = ''

--adı osman olanlar
EXEC SP_ORNEK @ADI = 'OSMAN', @ILI = '', @MESLEGI = '', @KAN = '', @TIPI = ''

--adı osman ili ankara olanlar
EXEC SP_ORNEK @ADI = 'OSMAN', @ILI = 'ANKARA', @MESLEGI = '', @KAN = '', @TIPI = ''

--ili istanbul kan B olanlar
EXEC SP_ORNEK @ADI = '', @ILI = 'İSTANBUL', @MESLEGI = '', @KAN = 'B', @TIPI = ''

--tipi sarı olanlar
EXEC SP_ORNEK @ADI = '', @ILI = '', @MESLEGI = '', @KAN = '', @TIPI = 'SARI'

--meslegi yazılım kanı 0 olanlar
EXEC SP_ORNEK @ADI = '', @ILI = ' ', @MESLEGI = 'YAZILIM', @KAN = '0', @TIPI = ''

-- kombinasyonu istediğin kadar çoğaltabilirsin.



sonuç : 
x2CIK8.png
Sorsaydı bilirdi, sormuyor ki bilsin. Bilseydi sorardı bilmiyor ki sorsun.
Cevapla
#25
(12-09-2020, Saat: 10:47)bydelphi Adlı Kullanıcıdan Alıntı: bu çalışan örneği bi incele .

IF OBJECT_ID('TABLO') IS NOT NULL DROP TABLE TABLO
GO
create table TABLO ( ID INT IDENTITY(1,1) PRIMARY KEY, ADI VARCHAR(60), ILI VARCHAR(60), MESLEGI VARCHAR(60), KAN VARCHAR(60), TIPI VARCHAR(60) )
GO
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('OSMAN','ANKARA','YAZILIM','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('AYŞE','İSTANBUL','MARKET','B','MAVİ')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('RIZA','İSTANBUL','BOŞ','B','SİYAH')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('YUSUF','ANKARA','YAZILIM','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('OSMAN','ANKARA','BOŞ','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('HALİL','MANİSA','YAZILIM','0','SARI')
INSERT INTO TABLO (ADI, ILI, MESLEGI, KAN, TIPI ) VALUES ('OSMAN','İSTANBUL','YAZILIM','0','SARI')
GO
IF OBJECT_ID('SP_ORNEK') IS NOT NULL DROP PROC SP_ORNEK
GO
CREATE PROC SP_ORNEK( @ADI VARCHAR(60), @ILI VARCHAR(60), @MESLEGI VARCHAR(60), @KAN VARCHAR(60), @TIPI VARCHAR(60)  ) 
AS
BEGIN
SELECT * FROM TABLO
WHERE
ISNULL(ADI,'') = COALESCE(NULLIF(@ADI,'') , ADI)
AND ISNULL(ILI,'') = COALESCE(NULLIF(@ILI,''),ILI)
AND ISNULL(MESLEGI,'') = COALESCE(NULLIF(@MESLEGI,''),MESLEGI)
AND ISNULL(KAN,'') = COALESCE(NULLIF(@KAN,''),KAN)
AND ISNULL(TIPI,'') = COALESCE(NULLIF(@TIPI,''),TIPI)
END
GO

--tüm kayıtlar
EXEC SP_ORNEK @ADI = '', @ILI = '', @MESLEGI = '', @KAN = '', @TIPI = ''

--adı osman olanlar
EXEC SP_ORNEK @ADI = 'OSMAN', @ILI = '', @MESLEGI = '', @KAN = '', @TIPI = ''

--adı osman ili ankara olanlar
EXEC SP_ORNEK @ADI = 'OSMAN', @ILI = 'ANKARA', @MESLEGI = '', @KAN = '', @TIPI = ''

--ili istanbul kan B olanlar
EXEC SP_ORNEK @ADI = '', @ILI = 'İSTANBUL', @MESLEGI = '', @KAN = 'B', @TIPI = ''

--tipi sarı olanlar
EXEC SP_ORNEK @ADI = '', @ILI = '', @MESLEGI = '', @KAN = '', @TIPI = 'SARI'

--meslegi yazılım kanı 0 olanlar
EXEC SP_ORNEK @ADI = '', @ILI = ' ', @MESLEGI = 'YAZILIM', @KAN = '0', @TIPI = ''

-- kombinasyonu istediğin kadar çoğaltabilirsin.



sonuç : 
x2CIK8.png
Kardeşim çok teşekkür ederim ben gönderdiğin örnekten sorgulama kısmını aldım ama sonuç değişmedi.



SELECT DISTINCT STOK_KODU,STOK_ADI,GRUP_KODU GKOD,SATIS_FIAT1,SATIS_FIAT2,SATIS_FIAT3,SATIS_FIAT4,ALIS_FIAT1,ALIS_FIAT2,ALIS_FIAT3,ALIS_FIAT4 
FROM TBLSTSABIT 
WHERE 
ISNULL(STOK_KODU,'') = COALESCE(NULLIF(@STOK_KODU,'') , STOK_KODU)
AND ISNULL(GRUP_KODU,'') = COALESCE(NULLIF(@GRUP_KODU,''),GRUP_KODU)
AND ISNULL(KOD_1,'') = COALESCE(NULLIF(@KOD_1,''),KOD_1)
AND ISNULL(KOD_2,'') = COALESCE(NULLIF(@KOD_2,''),KOD_2)
AND ISNULL(KOD_3,'') = COALESCE(NULLIF(@KOD_3,''),KOD_3)
AND ISNULL(KOD_4,'') = COALESCE(NULLIF(@KOD_4,''),KOD_4)
AND ISNULL(KOD_5,'') = COALESCE(NULLIF(@KOD_5,''),KOD_5)
AND ISNULL(DEPO_KODU,'') = COALESCE(NULLIF(@DEPO_KODU,''),DEPO_KODU)
AND ISNULL(SUBE_KODU,'') = COALESCE(NULLIF(@SUBE_KODU,''),SUBE_KODU)
END
GO

Cevapla
#26
Konuyu geç gördüm ama sorunu bence fonksiyon ile çözersiniz ki netsis de bunu öyle çözüyor
Fonksiyonlar içinde TRKC yada TRK_C şeklinde fonksiyon vardır.
sorguya yollarken
and GrupKodu = dbo.TRK(kısıt) şeklinde yollarsanız çözülecektir.

eğer olmazsa yada fonksiyon yoksa size kendi yazdığımı atayım.
Cevapla
#27
(12-09-2020, Saat: 12:53)FiRewaLL Adlı Kullanıcıdan Alıntı: Konuyu geç gördüm ama sorunu bence fonksiyon ile çözersiniz ki netsis de bunu öyle çözüyor
Fonksiyonlar içinde TRKC yada TRK_C şeklinde fonksiyon vardır.
sorguya yollarken
and GrupKodu = dbo.TRK(kısıt) şeklinde yollarsanız çözülecektir.

eğer olmazsa yada fonksiyon yoksa size kendi yazdığımı atayım.

FiRewaLL kardeşim evet var ama olmadı çok denedim çözülmedi.
Cevapla
#28
Hala aynı sorgu ama ????
STOK_KODU, GRUP_KODU, KOD_1, KOD_2, KOD_3, KOD_4, KOD_5, DEPO_KODU, SUBE_KODU
girdiğiniz sorguda yukarıdaki değerlerin hepsini sağlayan kayıt varmı veritabanında, eminmisiniz?
Sadece stok kodunu aratın bakalım sonuç ne olucak ? onda da sonuç vermiyorsa başka bir hata vardır.
WWW
Cevapla
#29
(12-09-2020, Saat: 13:35)esistem Adlı Kullanıcıdan Alıntı: Hala aynı sorgu ama ????
STOK_KODU, GRUP_KODU, KOD_1, KOD_2, KOD_3, KOD_4, KOD_5, DEPO_KODU, SUBE_KODU
girdiğiniz sorguda yukarıdaki değerlerin hepsini sağlayan kayıt varmı veritabanında, eminmisiniz?
Sadece stok kodunu aratın bakalım sonuç ne olucak ? onda da sonuç vermiyorsa başka bir hata vardır.

Netsis veritabanı olduğu için evet var.
Cevapla
#30
O zaman o karakter temizliği olayında sıkıntı var bence.
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Vcl.ActnCtrls Sorunu MuhammedYasir 7 509 12-08-2020, Saat: 11:29
Son Yorum: MuhammedYasir
  Port kapatma sorunu. seci20 0 151 10-08-2020, Saat: 15:28
Son Yorum: seci20
  Locate ve Lookup TR Karakter sorunu narkotik 3 1.680 15-06-2020, Saat: 16:49
Son Yorum: samsaros@gmail.com
  Delphi 10.3 Rest Debugger sorunu varyemez 4 753 31-05-2020, Saat: 01:36
Son Yorum: varyemez
  OrangeUI çoklu dil sorunu nguzeller 0 360 17-05-2020, Saat: 12:15
Son Yorum: nguzeller



Konuyu Okuyanlar: 1 Ziyaretçi