Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Merkez Bankası Döviz Kurları Hakkında
#11
Farklı bir metot da biz paylaşalım inşallah.

Kullanımı : 
BU GÜN
EXEC SP_GETMBCURREX 

TARİH
EXEC SP_GETMBCURREX  '20201025' 


CREATE PROC SP_GETMBCURREX (@DATE DATETIME = NULL)
AS
BEGIN

SET NOCOUNT ON
IF @DATE IS NULL SET @DATE = CONVERT(DATE,GETDATE())
DECLARE @url as nvarchar(1000)
if @DATE = CONVERT(DATE,GETDATE())
set  @url = 'http://www.tcmb.gov.tr/kurlar/today.xml'
else set @url = 'http://www.tcmb.gov.tr/kurlar/'+FORMAT(@DATE,'yyyyMM')+'/'+FORMAT(@DATE,'ddMMyyyy')+'.xml'
--print @url
DECLARE @status int
DECLARE @responseText as table(responseText XML)
DECLARE @res as Int;
EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @res OUT
EXEC sp_OAMethod @res, 'open', NULL, 'GET',@url,'false'
EXEC sp_OAMethod @res, 'send'
EXEC sp_OAGetProperty @res, 'status', @status OUT
INSERT INTO @ResponseText (ResponseText) 
EXEC sp_OAGetProperty @res, 'responseXML.xml'
EXEC sp_OADestroy @res
DECLARE @XML XML , @TEXT NVARCHAR(MAX)
SELECT @XML =responseText  FROM @ResponseText
DECLARE @Obj int 
SELECT @XML = responseText FROM @responseText
EXEC sp_xml_preparedocument @Obj OUTPUT, @XML;  

IF OBJECT_ID('TEMPDB..#TMPCURR') IS NOT NULL 
DROP TABLE #TMPCURR
SELECT * INTO #TMPCURR 
FROM OPENXML(@Obj, N'//Tarih_Date/Currency') 
WITH ( 
Tarihi  smalldatetime '../@Date'
,CurrencyCode   VARCHAR(10) '@CurrencyCode'
,CrossOrder  VARCHAR(10) '@CrossOrder'
,Unit VARCHAR(100) 'Unit'
,Isim VARCHAR(100) 'Isim'
,Alis VARCHAR(100) 'ForexBuying'
,Satis VARCHAR(100) 'ForexSelling'
,EfAlis VARCHAR(100) 'BanknoteBuying'
,EfSatis VARCHAR(100) 'BanknoteSelling'
) AS TCMB 
exec sp_xml_removedocument @Obj;  

SELECT * FROM #TMPCURR
END

TeS6ro.jpg
Herhangi bir insan bilgisayarın anlayabileceği kod yazabilir.  İyi programcılar ise insanların da anlayabileceği kodlar yazarlar. 
Martin Fowler / Refactoring 
Cevapla
#12
@bydelphi Örnek için çok teşekkür ederim...

Minik bir hatırlatma:
FORMAT fonksiyonu mssqlserver 2012 ve üzerinde varmış. kaynak: https://docs.microsoft.com/en-us/previou...dfrom=MSDN
benim gibi 2008 kullananlar için:
set @url = 'http://www.tcmb.gov.tr/kurlar/'+left(convert(varchar,@DATE,112),6)+'/'+replace(convert(varchar,@DATE,103),'/','')+'.xml'


şeklinde düzenledim.
Cevapla
#13
(4 saat önce)forumcuali Adlı Kullanıcıdan Alıntı: @bydelphi Örnek için çok teşekkür ederim...

Minik bir hatırlatma:
FORMAT fonksiyonu mssqlserver 2012 ve üzerinde varmış. kaynak: https://docs.microsoft.com/en-us/previou...dfrom=MSDN
benim gibi 2008 kullananlar için:
set @url = 'http://www.tcmb.gov.tr/kurlar/'+left(convert(varchar,@DATE,112),6)+'/'+replace(convert(varchar,@DATE,103),'/','')+'.xml'


şeklinde düzenledim.

Teşekkürler , 

Bu arada senin şu sineğe hastayım.
Habire ekranı temizleyesim geliyor Smile
Herhangi bir insan bilgisayarın anlayabileceği kod yazabilir.  İyi programcılar ise insanların da anlayabileceği kodlar yazarlar. 
Martin Fowler / Refactoring 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Com Dll hakkında trpersia 4 273 19-11-2020, Saat: 02:54
Son Yorum: trpersia
  HES Kodu Sorgulaması hakkında adelphiforumz 25 1.688 17-11-2020, Saat: 22:09
Son Yorum: mrmarman
  TButtonGroup Hakkında bkantur 7 263 06-11-2020, Saat: 06:52
Son Yorum: bajerli
  Devexpress cxVerticalGrid Value Hakkında software44 3 177 03-11-2020, Saat: 14:07
Son Yorum: software44
  Anlık Döviz Kuru apachi2006 2 537 20-08-2020, Saat: 22:54
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi