Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MSSQL den Xml post etmek
#1
MSSQL den Xml post etmeye ne dersiniz ?

Xml ile sms post etmek için yazdığım kodları direk paylaşıyorum. Firmadan firmaya xml yapısı değişe bilir

örnek xml yapısı : 
<sms>
	<kno>[kullanicino]</kno>
	<kulad>[kullaniciAdi]</kulad>
	<sifre>[sifre]</sifre>
	<gonderen>[baslik]</gonderen>
		<telmesajlar>
			<telmesaj>
			<tel>90[telefon]</tel>
			<mesaj>[mesaj]</mesaj>
		</telmesaj>
	</telmesajlar>
</sms>



create Procedure [dbo].[Sp_SmsYollamaDirek]
	@id varchar(100) = '',
	@telefon varchar(15) = '',
	@Ad varchar(100) = '',
	@Soyad varchar(100) = '',
	@Mesaj varchar(200) output
as
SET NOCOUNT ON
declare @Object int,
@xmmlformati varchar(max)
----------------------------
declare @sms_firma_kullanici_adi varchar(50)
declare @sms_firma_sifre varchar(50)
declare @sms_firma_baslik varchar(50)
declare @sms_firma_kullanici_no varchar(50)
declare @sms_firma_url varchar(50)
declare @sms_firma_xml varchar(max)
declare @amac varchar(50)

select top(1)
@sms_firma_kullanici_adi=Firma_UserName,
@sms_firma_sifre=Firma_Password,
@sms_firma_url=Firma_Url,
@sms_firma_baslik=Firma_Baslik,
@sms_firma_kullanici_no=Firma_Kodu,
@sms_firma_xml=Firma_Yapi  
from Sms_Firma where Durum='1'
		set @Mesaj=[dbo].[SmsTrKarakter] (@Mesaj)
		set @Ad=[dbo].[SmsTrKarakter] (@Ad)
		set @soyad=UPPER(@soyad)
		set @soyad=[dbo].[SmsTrKarakter] (@soyad)
		set @telefon =REPLACE(@telefon,' ','')
		set @telefon =REPLACE(@telefon,')','')
		set @telefon =REPLACE(@telefon,'(','')
		set @telefon =REPLACE(@telefon,'-','')
		set @telefon =REPLACE(@telefon,'_','')
		set @mesaj = REPLACE(@mesaj COLLATE Turkish_CS_AS,'[ad]',ltrim(rtrim(@Ad))+' ')
		set @mesaj = REPLACE(@mesaj COLLATE Turkish_CS_AS,'[soyad]',ltrim(rtrim(@Soyad))+' ')
		set @mesaj = REPLACE(@mesaj COLLATE Turkish_CS_AS,'[telefon]',@telefon)
		set @sms_firma_xml = REPLACE(@sms_firma_xml COLLATE Turkish_CS_AS,'[kullaniciAdi]',@sms_firma_kullanici_adi)
		set @sms_firma_xml = REPLACE(@sms_firma_xml COLLATE Turkish_CS_AS,'[sifre]',@sms_firma_sifre)
		set @sms_firma_xml = REPLACE(@sms_firma_xml COLLATE Turkish_CS_AS,'[baslik]',@sms_firma_baslik)
		set @sms_firma_xml = REPLACE(@sms_firma_xml COLLATE Turkish_CS_AS,'[telefon]',@telefon)
		set @sms_firma_xml = REPLACE(@sms_firma_xml COLLATE Turkish_CS_AS,'[mesaj]',@mesaj)
		set @xmmlformati =@sms_firma_xml
if (@Mesaj!='')
	begin
		Exec master..sp_OACreate 'MSXML2.ServerXMLHTTP', @Object OUTPUT;
		Exec master..sp_OAMethod @Object, 'open', null, 'POST', @sms_firma_url, 'false'
		Exec master..sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Type', 'application/text'
		Exec master..sp_OAMethod @Object,'send', null, @xmmlformati
		update Sms_Gecmis set Durum='1' where id=@id
	end


Rep Puanı vermeyi unutmazsanız sevinirim Smile))
Cevapla
#2
Eline sağlık çok güzel kullanışlı bir yapı.. Bende ek bir bilgi vereyim.. MSSQL 2016 sürümünden itibaren JSON desteği geldi.. Belki birilerine lazım olur..
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#3
Ben 2012 da bunu yaptım o zaman json felan yoktu Big Grin ha istenirse zaten json olarakda yapı değiştirlebilir ama MSSQL kendi içine alması çok daha mükemmel oldu.
Cevapla
#4
@esrehmaan  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol prosedürü için "Creates an instance of an OLE object." ifadesi yer alıyor.

Yani OLE üzerinden erişim sağlanabilen bir programa, dilersem SQL Server içinden sp_OA.. ile başlayan prosedürlerle,
OLE sınıflarının sağladığı methodlar ve özellikler dahilinde, kullanabilmenin mümkün olduğunu anlamamız gerekiyor değil mi ?

Öyleyse çektiğimiz veriyi dilersek, excel , word yada OLE üzerinden erişim sağlanan başka bir programa aktarabiliriz.
Yada aynı şekilde OLE erişimi sağlayan herhangi bir program ile, SQL server içinden iletişim kurup, çektiğimiz veriyi SQL server içersine yazabiliriz anlamı mı çıkıyor ?
One of the major software engineering challanges is managing change.
Cevapla
#5
(26-12-2016, Saat: 10:04)kimimben Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol@esrehmaan  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol prosedürü için "Creates an instance of an OLE object." ifadesi yer alıyor.

Yani OLE üzerinden erişim sağlanabilen bir programa, dilersem SQL Server içinden sp_OA.. ile başlayan prosedürlerle,
OLE sınıflarının sağladığı methodlar ve özellikler dahilinde, kullanabilmenin mümkün olduğunu anlamamız gerekiyor değil mi ?

Öyleyse çektiğimiz veriyi dilersek, excel , word yada OLE üzerinden erişim sağlanan başka bir programa aktarabiliriz.
Yada aynı şekilde OLE erişimi sağlayan herhangi bir program ile, SQL server içinden iletişim kurup, çektiğimiz veriyi SQL server içersine yazabiliriz anlamı mı çıkıyor ?

Merhaba, 
Yanlış hatırlamıyorsam bazı kısıtlamalar vardı..
Alternatif bir çözüm isterseniz Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol olabilir. Dotnet ile hazılanan bir DLL' e TSQL üzerinden erişim imkanı sunuyor..
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  MSSQL Sistem Taşıması Hakkında adelphiforumz 8 354 21-04-2018, Saat: 02:30
Son Yorum: FiRewaLL
  MSSQL Server Hakkında Bilmek İstedikleriniz esrehmaan 23 2.218 19-02-2018, Saat: 09:57
Son Yorum: klavye
  MSSQL Veri Tabanı Yedekleme Sıkıştırma ve FTP ye Gönderim - Delphi Konsol Uygulaması mad85 0 334 09-11-2017, Saat: 13:32
Son Yorum: mad85
  MSSQL Server 2008 R2 Express Mail Göndermek pro_imaj 14 1.584 29-04-2017, Saat: 15:14
Son Yorum: DelphiCanR
  MSSQL Azure yedekleme esrehmaan 3 615 26-12-2016, Saat: 12:25
Son Yorum: pro_imaj



Konuyu Okuyanlar: 1 Ziyaretçi