Makale Özeti

Veri aktarımında bir çığır açan XMLin kullanımına yönelik bir başka makale.

Makale

Asp ile MS SQL Server’dan Gelen Dataları XML olarak Aktarım

Amaç : Dökümanımızın içeriği üç Ana Hatlardan oluşmaktadır.Asp , MS SQL Server ( 7.0 / 2000 ) ,XML ; Bu çalışmadaki amaçımız MS Sql Server dan Gelen dataları Asp ile Çekip XML olarak bağlamak bunu Yapacak bir Asp Programımız ve xml olarak oluşturduğumuz dataları ayrı bir asp sayfası ile dataların bir yerden bir yere aktarımını sağlamak böylelikle veri tabanındaki dataları her hangi bir refresh olmadan kayıtları sayfalayıp isteğe göre kayıtlara ulaşabilme olanağı sağlamaktır.Öncelikle Veri Tabanımızı Yaratalım Bunu Yaparken MS SQL Server 2000 » EnterPrise Manager » Console Root » Microsoft SQL Servers » SQL Server Group » Server Name » Databases » Mouse Sağ Tuş New Database Database Properties General Sekmesinden Database Name Belirleyip Tamam dedikten Sonra Database oluşumumuzu Tamamlıyoruz Bundan sonra oluşan database içerisinde Table oluşumunu gerçekleştirmemiz bunun için Databases dan oluşturduğumuz database üzerine Mouse Sağ tuş ile tıklayıp açılan menude NEW Seçeneğiniz üzerine gelerek diğer bir açılan menude Table Sekmesini Tıklamamızdır bu sekme Açıldığında bize ilk sorulacak Table ismidir ve bunu belirledikten sonra gerekli işlemleri tamamlayıp table mızın oluşumunu bitirmektir İki Field Tanımalayalım diyelim Bunlardan biri Ad diğeri ise Soyad olsun

 AD

 SOYAD

 İlhan 

 Mansız

 Tümer

 Metin

 Ahmet

 Dursun

Şeklinde veri tabanımızın Kabaça Taslağınız oluşturmuş oldu

Sayfa 1 : XML.Asp Programımızın içerik Kodunu inceleyelim

<%@ Language=VBScript %>

<%

Dim Data_Path,Objconn,Objrs,Conn_Str

‘Data_Path=Server.MapPath("veri.mdb")

‘Conn_Str_1="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Data_Path ‘ MS Access DRIVER String’i

‘Conn_Str_2="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Data_Path ‘Jet OLEDB Bağlantı String’i

‘MS SQL Server Bağlanti Stringleri Desteğe göre Seçenek

 ‘Conn_Str_3="Provider=SQLOLEDB;Data Source=Sunucu_name;Initial Catalog=Database_ismi;UID=Sa;PWD=1234567;Network Library=dbmsvinn"

‘Conn_Str="Provider=SQLOLEDB;Data Source=Sunucu_name;Initial Catalog=Database_ismi;UID=Sa;PWD=1234567;"

Conn_Str="DRIVER={SQL SERVER };SERVER=Sunucu_ismi;DATABASE=veri;UID=sa;PWD=1234567"

Set ObjConn=server.CreateObject("ADODB.Connection")

ObjConn.Open Conn_Str

SQLim="Select * From kisiler"

Response.ContentType="Text/XML"

Set ObjRs=Server.CreateObject("ADODB.Recordset")

ObjRs.Open SQLim,ObjConn,1,3

 Dim i 

  Response.Write "<?xml version=""1.0""  encoding="iso-8859-9"?>"

  Response.Write "<kisiler>"

  Do While Not ObjRs.EOF

  Response.Write "<kisi>"

  For i = 0 to ObjRs.Fields.Count - 1

  Response.Write "<" + ObjRs.Fields(i).Name + ">"

  Response.Write Server.HTMLEncode(trim(cstr(ObjRs.Fields(i).Value)))

  Response.Write "</" + ObjRs.Fields(i).Name + ">"

  NEXT

  Response.Write "</kisi>"

  ObjRs.MoveNext

  Loop

  Response.Write "</kisiler>"

 

ObjRs.Close

ObjConn.Close

Set ObjRs=Nothing

Set ObjConn=Nothing

%>

Kodumuzun Derlenmiş Hali XML.Asp

<?xml version="1.0" encoding="iso-8859-9"?>

<Kisiler>

<kisi>

<ad>İlhan</ad>

<soyad>Mansız</soyad>

</kisi>

<kisi>

<ad>Tümer</ad>

<soyad>Metin</soyad>

</kisi>

<kisi>

<ad>Ahmet</ad>

<soyad>Dursun</soyad>

</kisi>

</Kisiler>

XML.Asp Kod içeriğinin Açıklaması :

Data_Path=Bu değişken ile Server Taraflı verinin yolunu belirtiyoruz

Conn_Str_1=Driver’lı MS Access Bağlantı string’i

Conn_Str_2=Microsoft Jet Bağlantı String’i Cümlesi

Conn_Str_3=MS SQL Server OLEDB bağlantı string cümlemiz

Provider SQLOLEDB; UID=user name » User ID diyede belirtilir UID=Sa ; MS SQL Server ilk kurulumunda aktarılan kullanıcı ismidir PWD=password kullanıcının belirlediği şifre , Network Library Burası şimdilik biraz kafa karıştırabilir Network ortamlı

İntranet Projelerinde kullanılan Network Kütüphanesi isimleri olarak adlandırılır.Yani;

Win32 Network Libraries :

Network Library  | Library Name

 TCP / IP dbmssocn

MultiProtocol( RPC ) dbmsrpcn

 Named Pipes dbnmpntw

NWLink IPX / SPX dbmsspxn

Yukarıda Win32 Ağ Kütüphane listesi Farklı Referans Değerlerinin bir kısmını içermektedir.Şimdilik Bizim Kullanacağımız Bağlantı stringimiz DRIVER SQLOLEDB….

Yukarıdaki Kodta bize Farklı Gelen kısımları Açıklayacak olursak

Response.ContentType burada bizim kodumuzun içerik tipinin belirtiyoruz kodumuzun yapmış olduğu derlemede bir xml yapısına dönüşeceği için içerik tipinin text/xml olarak belirtiyoruz.Daha sonra normal bir Asp çalışmasından Aşina olduğumuz değimlerimizi ve dögülerimizi Kullanarak kodumuzu işleme tabi tutuyoruz.

Bütün bunların Tamamladıktan Sonra İkinci Adım olan Veri lerin Çekileceği Asp Sayfamızı Yaratıyoruz Kodumuz Şu şekilde olacak

<HTML>

<HEAD>

<meta http-equiv="Content-Language" content="tr">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1254">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-9">

<TITLE>ASP ile MS SQL SERVER dan Gelen Verileri XML olarak Aktarım « Sayfalama »</TITLE>

</HEAD>

<BODY>

<XML id="data" SRC="xml.asp"></XML>

<TABLE width="350" cellpadding="0" cellspacing="0" id="veri" DATAPAGESIZE="3" DATASRC="#data">

<TR>

<TH>Kişi ismi</TH><TH>Kişi Soyad</TH>

</TR>

<TR>

<TD><span DATAFLD="ad"></span></TD><TD><span DATAFLD="soyad"></span></TD>

</TR>

</TABLE>

<input type="Button" value=" «« Geri" onclick="veri.previousPage()"><input type="Button" value="Ileri »»" onclick="veri.nextPage()">

</BODY>

</HTML>

Microsoft’un büyük Gözdelerinden biri olan XML’in Asp ile ilişkisel yanlarına değindik ve Database olarak büyük Platformlarda kullanılan ( Projeler ) MS SQL Server bağlantı yanlarını Gözden Geçirmiş olduk.