Adoquery ile sql sorguda parametre kullanımı hk

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
netbilgi
Üye
Mesajlar: 11
Kayıt: 12 May 2016 02:04

Adoquery ile sql sorguda parametre kullanımı hk

Mesaj gönderen netbilgi »

Merhaba Arkadaşlar elimde aşağıdaki gibi bir sql sorgusu olup, bu sorguda 4 adet parametreyi
@KASA
20151231-@TARIH1
20160601-@TARIH2
20200131-@TARIH3 nasıl kullanabilirim. Yardımınız için teşekkürler.


Kullanmam gereken yer:
dbo.fn_CariFoy(N'0', 4, N'',NULL, '20151231', '20160601', '20201231,'0, N'') AS h2 LEFT OUTER JOIN (aşağıdaki ilgili satır)

(---------------------------------------------------) alanlarında parametre olacak.)
dbo.fn_CariFoy(N'0', 4, @KASA,NULL, @TARIH1,@TARIH2,@TARIH3,0, N'') AS h2 LEFT OUTER JOIN E_FATURA_DETAYLARI AS F ON F.efd_fat_recid_dbcno = h.[#msg_S_0720] AND F.efd_fat_recid_recno = h.[#msg_S_0998] Order by [msg_S_0089] /* TARİH */ ,[msg_S_0094] /* EVRAK TİPİ */ ,[msg_S_0090] /* SERİ */ ,[msg_S_0091] /* SIRA */




-----------------------------------Programın aslı

Kod: Tümünü seç

SELECT  TOP (100) PERCENT h.msg_S_0088 AS EXPR1, h.[#msg_S_0200] AS EXPR4, h.[#msg_S_0201] AS EXPR5, 
                     h.msg_S_0089 AS EXPR7,  h.[#msg_S_0092] AS EXPR10, 
                     h.msg_S_0094 AS EXPR12, h.msg_S_0003 AS EXPR13, h.[#msg_S_0085] AS EXPR20, 
                     h.msg_S_1129 AS EXPR21, h.msg_S_1130 AS EXPR22, h.msg_S_0098 AS EXPR23,
                     h.msg_S_0100 AS EXPR27, h.[msg_S_0101\T] AS EXPR28, h.[msg_S_0102\T] AS EXPR29, 
                     h.[#msg_S_0103\T] AS EXPR30,
                     
                     (select SUM( h2.[#msg_S_0103\T] ) FROM dbo.fn_CariFoy(N'0', 4, @KASA, NULL, '20151231', '20160601', '20201231', 0, N'') AS h2 LEFT OUTER JOIN
                      dbo.E_FATURA_DETAYLARI AS F2 ON F2.efd_fat_recid_dbcno = h2.[#msg_S_0720] AND F2.efd_fat_recid_recno = h2.[#msg_S_0998]
                      WHERE h2.msg_S_0088 <= h.msg_S_0088 ) as Toplam
                   
FROM                                                   dbo.fn_CariFoy(N'0', 4, N''',NULL, '20151231', '20160601', '20201231', 0, N'') AS h LEFT OUTER JOIN E_FATURA_DETAYLARI AS F ON F.efd_fat_recid_dbcno = h.[#msg_S_0720] AND F.efd_fat_recid_recno = h.[#msg_S_0998] Order by [msg_S_0089] /* TARİH */ ,[msg_S_0094] /* EVRAK TİPİ */ ,[msg_S_0090] /* SERİ */ ,[msg_S_0091] /* SIRA */

En son netbilgi tarafından 22 Ağu 2016 04:30 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
m_yaprakci

Re: Adoquery ile sql sorguda parametre kullanımı hk

Mesaj gönderen m_yaprakci »

Tam olarak anlamadım ama şöyle bir şey istiyorsun sanırım:

(select SUM( h2.[#msg_S_0103\T] ) FROM dbo.fn_CariFoy(N'0', 4, :KASA, NULL, :TARIH1, :TARIH2, :TARIH3, 0, N'') AS h2 LEFT OUTER
....
....
FROM dbo.fn_CariFoy(N'0', 4, N''',NULL, :TARIH1, :TARIH2, :TARIH3, 0, N'') AS h LEFT OUTER JOIN E_FATURA_DETAYLARI AS F ON F.efd_fat_recid_dbcno = h.[#msg_S_0720] AND F.efd_fat_recid_recno = h.[#msg_S_0998] Order by [msg_S_0089] /* TARİH */ ,[msg_S_0094] /* EVRAK TİPİ */ ,[msg_S_0090] /* SERİ */ ,[msg_S_0091] /* SIRA */

...
...

Kod: Tümünü seç

Adoquery1.Parameters.ParambyName('KASA').Value='KASA DEGISKENI';
Adoquery1.Parameters.ParambyName('TARIH1').Value='20151231';
Adoquery1.Parameters.ParambyName('TARIH2').Value='20160601';
Adoquery1.Parameters.ParambyName('TARIH3').Value='20201231';
.Value yerine Asstring kullanabilirsin.
Tırnak içine almak için ise

Kod: Tümünü seç

Adoquery1.Parameters.ParambyName('TARIH3').Value=QuotedStr('20201231');
netbilgi
Üye
Mesajlar: 11
Kayıt: 12 May 2016 02:04

Re: Adoquery ile sql sorguda parametre kullanımı hk

Mesaj gönderen netbilgi »

Teşekkür Ederim
netbilgi
Üye
Mesajlar: 11
Kayıt: 12 May 2016 02:04

Re: Adoquery ile sql sorguda parametre kullanımı hk

Mesaj gönderen netbilgi »

Merhaba Arkadaşlar,
Mikro 15xx Enerji programında Function [dbo].[fn_CariFoy] fonksiyonunu delphi içerisinde aşağıdaki sql komutlarını parametre ile kullanarak
nasıl işler hale getirebilirim.Program içerinde kullanımı hk. yardımınızı rica ederim.
Saygılarımla,

------------------------------------------------------------------------------------------------------------------------------------------------------------------

Kod: Tümünü seç

SELECT TOP (100) PERCENT h.msg_S_0088 AS EXPR1, h.[#msg_S_0200] AS EXPR4, h.[#msg_S_0201] AS EXPR5, 
h.msg_S_0089 AS EXPR7, h.[#msg_S_0092] AS EXPR10, 
h.msg_S_0094 AS EXPR12, h.msg_S_0003 AS EXPR13, h.[#msg_S_0085] AS EXPR20, 
h.msg_S_1129 AS EXPR21, h.msg_S_1130 AS EXPR22, h.msg_S_0098 AS EXPR23,
h.msg_S_0100 AS EXPR27, h.[msg_S_0101\T] AS EXPR28, h.[msg_S_0102\T] AS EXPR29, 
h.[#msg_S_0103\T] AS EXPR30,

(select SUM( h2.[#msg_S_0103\T] ) FROM dbo.fn_CariFoy(N'0', 4, @KASA, NULL, '20151231', '20160601', '20201231', 0, N'') AS h2 LEFT OUTER JOIN
dbo.E_FATURA_DETAYLARI AS F2 ON F2.efd_fat_recid_dbcno = h2.[#msg_S_0720] AND F2.efd_fat_recid_recno = h2.[#msg_S_0998]
WHERE h2.msg_S_0088 <= h.msg_S_0088 ) as Toplam

FROM dbo.fn_CariFoy(N'0', 4, N''',NULL, '20151231', '20160601', '20201231', 0, N'') AS h LEFT OUTER JOIN E_FATURA_DETAYLARI AS F ON F.efd_fat_recid_dbcno = h.[#msg_S_0720] AND F.efd_fat_recid_recno = h.[#msg_S_0998] Order by [msg_S_0089] /* TARİH */ ,[msg_S_0094] /* EVRAK TİPİ */ ,[msg_S_0090] /* SERİ */ ,[msg_S_0091] /* SIRA */

Adoquery1.Parameters.ParambyName('KASA').Value='KASA DEGISKENI';
Adoquery1.Parameters.ParambyName('TARIH1').Value='20151231';
Adoquery1.Parameters.ParambyName('TARIH2').Value='20160601';
Adoquery1.Parameters.ParambyName('TARIH3').Value='20201231';






--------------------CARI FOY--MSSQL--MIKRO ICERINDEKI SEKLI---------------------------------------------------------------------------------------------

Kod: Tümünü seç


USE [MikroDB_V15_2015]
GO
/****** Object:  UserDefinedFunction [dbo].[fn_CariFoy]    Script Date: 08/22/2016 10:59:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[fn_CariFoy]
(
@firmalar  nvarchar(MAX) = NULL,
@caricins  tinyint = 0,
@carikod  nvarchar(25) = '',
@grupno   tinyint  = NULL,
@devirtar  datetime = NULL,
@ilktar   datetime = NULL,
@sontar  datetime = NULL,
@odemeemridegerlemedok tinyint = 0,
@SomStr  nvarchar(MAX)=''
)
RETURNS @CariFoyTBL TABLE
(
[msg_S_0088]    integer,      -- KAYIT NO
[#msg_S_0720]   tinyint,      -- DBCNO
[#msg_S_0998]   integer,      -- DATABASE NO
[#msg_S_0200]   nvarchar(25), -- CARİ KODU
[#msg_S_0201]   nvarchar(100), -- CARİ İSMİ
[#msg_S_0879]   nvarchar(50), -- FİRMA UNVANI
[msg_S_0089]    datetime,    -- TARİH
[msg_S_0090]    nvarchar(6),  -- SERİ
[msg_S_0091]    integer,     -- SIRA
[#msg_S_0092]   datetime,    -- BELGE TARİHİ
[#msg_S_0093]   nvarchar(20), -- BELGE NO
[msg_S_0094]    nvarchar(55), -- EVRAK TİPİ
[msg_S_0003]    nvarchar(55), -- CİNSİ
[#msg_S_0158]   tinyint,     --HAREKET  CİNSi
[#msg_S_0096]   nvarchar(50), -- GRUBU
[#msg_S_1712]   tinyint,     -- CARİ HESAP GRUP NO
[msg_S_0118]    nvarchar(25), -- SRM.MRK.KODU
[msg_S_0119]    nvarchar(50), -- SRM.MRK.İSMİ
[msg_S_0097]    nvarchar(15), -- N/İ
[#msg_S_0085]   nvarchar(50), -- AÇIKLAMA
[msg_S_1129]    nvarchar(25), -- SORUMLU KODU
[msg_S_1130]    nvarchar(100), -- SORUMLU İSMİ
[msg_S_0098]    datetime,    -- VADE TARİH
[msg_S_0099]    integer,     -- VADE GÜN
[#msg_S_0159]   nvarchar(120), -- DEPO
[#msg_S_0165]   float,       -- MİKTAR
[msg_S_0100]    nvarchar(25), -- B/A
[msg_S_0101\T]  float,       -- ANA DÖVİZ BORÇ
[msg_S_0102\T]  float,       -- ANA DÖVİZ ALACAK
[#msg_S_0103\T] float,       -- ANA DÖVİZ TUTAR
[msg_S_1706]    float,       -- ANA DÖVİZ BORÇ BAKİYE
[msg_S_1707]    float,       -- ANA DÖVİZ ALACAK BAKİYE
[#msg_S_0957]   float,       -- ANA DÖVİZ BAKİYE
[msg_S_0104]    float,       -- ALT.DOVİZ KUR
[msg_S_0105\T]  float,       -- ALT. DÖVİZ BORÇ
[msg_S_0106\T]  float,       -- ALT. DÖVİZ ALACAK
[#msg_S_0107\T] float,       -- ALT. DÖVİZ TUTAR
[msg_S_1708]    float,       -- Alternatif DÖVİZ BORÇ BAKİYE
[msg_S_1709]    float,       -- Alternatif DÖVİZ ALACAK BAKİYE
[#msg_S_1714]   float,       -- Alternatif DÖVİZ BAKİYE
[msg_S_0108]    float,       -- ORJ.DOVİZ KUR
[msg_S_0109\T]  float,       -- ORJ. DÖVİZ BORÇ
[msg_S_0110\T]  float,       -- ORJ. DÖVİZ ALACAK
[#msg_S_0111\T] float,       -- ORJ. DÖVİZ TUTAR
[msg_S_1710]    float,       -- ORJINAL DÖVİZ BORÇ BAKİYE
[msg_S_1711]    float,       -- ORJINAL DÖVİZ ALACAK BAKİYE
[#msg_S_1715]   float,       -- ORJINAL DÖVİZ BAKİYE
[msg_S_0112]    nvarchar(3),  -- ORJ.DOVİZ
[msg_S_0113]    nvarchar(25), -- KARŞI HESAP CİNSİ
[msg_S_0114]    nvarchar(25), -- KARŞI HESAP KODU
[msg_S_0115]    nvarchar(100), -- KARŞI HESAP İSMİ
[#msg_S_1115]   nvarchar(30), -- GRUBU
[msg_S_1420]    nvarchar(25), -- SRM.MRK.KODU
[msg_S_1116]    nvarchar(50), -- SRM.MRK.İSMİ
[#msg_S_0116]   nvarchar(25), -- PROJE KODU
[#msg_S_0117]   nvarchar(40), -- PROJE ADI
[#msg_S_0298]   nvarchar(25), -- REFERANS NO
[#msg_S_0120]   nvarchar(5),  -- KİLİTLİ
[#msg_S_0161]   nvarchar(25), -- PARTİ
[#msg_S_0162]   integer    , -- LOT
[#msg_S_1998]   nvarchar(25),--CİRO CARİ KODU
[#msg_S_1999]   nvarchar(50) --CİRO CARİ İSMİ
)
AS
BEGIN
INSERT INTO @CariFoyTBL
Select TOP 100 PERCENT * From dbo.fn_HamCariFoy(@firmalar,@caricins,@carikod,@grupno,@ilktar,@sontar,@odemeemridegerlemedok,@SomStr,'')
UNION ALL
SELECT
0,                    -- KAYIT NO
0,                    -- DBCNO
0,                    -- DATABASE NO
'',                   -- CARİ KODU
'',                   -- CARİ İSMİ
'',                   -- FİRMA ÜNVANI
@ilktar,              -- TARİH
'',                   -- SERİ
0,                    -- SIRA
@ilktar,              -- BELGE TARİHİ
'',                   -- BELGE NO
'_'+dbo.fn_GetResource('P',1206,DEFAULT)+'_',            -- EVRAK TİPİ
'_'+dbo.fn_GetResource('P',1206,DEFAULT)+'_',            -- CİNSİ
0,                    -- CİNS
'',                   -- GRUBU
[#msg_S_1712],        -- CARİ HESAP GRUP NO
'',                   -- SRM.MRK.KODU
'',                   -- SRM.MRK.İSMİ
'',                   -- N/İ
dbo.fn_GetResource('P',1340,DEFAULT),           -- DEVREDEN
'',                   -- SORUMLU KODU
'',                   -- SORUMLU İSMİ
@ilktar,              -- VADE TARİH
0,                    -- VADE GÜN
'',                   -- DEPO
0,                    -- MİKTAR
'',                   -- B/A
SUM([msg_S_0101\T]),  -- ANA DÖVİZ BORÇ
SUM([msg_S_0102\T]),  -- ANA DÖVİZ ALACAK
SUM([msg_S_0101\T])-SUM([msg_S_0102\T]), -- ANA DÖVİZ TUTAR
CAST ( 0 AS FLOAT ),  -- ANA DÖVİZ BORÇ BAKİYE
CAST ( 0 AS FLOAT ),  -- ANA DÖVİZ ALACAK BAKİYE
CAST ( 0 AS FLOAT ),  -- ANA DÖVİZ BAKİYE
0,                    -- ALT.DOVİZ KUR
SUM([msg_S_0105\T]),  -- ALT. DÖVİZ BORÇ
SUM([msg_S_0106\T]),  -- ALT. DÖVİZ ALACAK
SUM([msg_S_0105\T])-SUM([msg_S_0106\T]), -- ALT. DÖVİZ TUTAR
CAST ( 0 AS FLOAT ),  -- Alternatif DÖVİZ BORÇ BAKİYE
CAST ( 0 AS FLOAT ),  -- Alternatif DÖVİZ ALACAK BAKİYE
CAST ( 0 AS FLOAT ),  -- Alternatif DÖVİZ BAKİYE
0,                    -- ORJ.DOVİZ KUR
SUM([msg_S_0109\T]),  -- ORJ. DÖVİZ BORÇ
SUM([msg_S_0110\T]),  -- ORJ. DÖVİZ ALACAK
SUM([msg_S_0109\T])-SUM([msg_S_0110\T]), -- ORJ. DÖVİZ TUTAR
CAST ( 0 AS FLOAT ),  -- ORJINAL DÖVİZ BORÇ BAKİYE
CAST ( 0 AS FLOAT ),  -- ORJINAL DÖVİZ ALACAK BAKİYE
CAST ( 0 AS FLOAT ),  -- ORJINAL DÖVİZ BAKİYE
[msg_S_0112]       ,  -- ORJ.DOVİZ,
'',                   -- KARŞI HESAP CİNSİ
'',                   -- KARŞI HESAP KODU
'',                   -- KARŞI HESAP İSMİ
'',                   -- GRUBU
'',                   -- SRM.MRK.KODU
'',                   -- SRM.MRK.İSMİ
'',                   -- PROJE KODU
'',                   -- PROJE ADI
'',                   -- REFERANS NO
'',                   -- KİLİTLİ
'',                   -- PARTİ
0 ,                   -- LOT
'',                   --CİRO CARİ KODU
''                    --CİRO CARİ İSMİ
From dbo.fn_CariTutarlar ( @firmalar,@caricins,@carikod,@grupno,null,dateadd(Day, -1, @ilktar),0,@SomStr,'' )
WHERE (@ilktar is NOT NULL)
GROUP BY [#msg_S_1712],[msg_S_0112]
RETURN
END

En son netbilgi tarafından 22 Ağu 2016 04:25 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Adoquery ile sql sorguda parametre kullanımı hk

Mesaj gönderen yhackup »

kodlarını [.code][./code] bloğuna alsan daha iyi olurdu
Çaylak Delphici :D

Yakup ULUTAŞ
Cevapla