Nasıl yapılır: ADO Recordset, Oracle'nın ASP REF IMLEÇLERI kullanma yoluyla gelen Al

Makale çevirileri Makale çevirileri
Makale numarası: 255043 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Sürüm, Microsoft Data Access Components (MDAC) 2.5 ile Oracle için Microsoft OLEDB Sağlayıcısı şimdi bir REF CURSOR türü, bir Oracle yordamdan gelen ActiveX Data Objects (ADO) kayıt kümesi dönüşü destekler. Bu işlev yalnızca Oracle için Microsoft OLEDB Sağlayıcısı desteklenmiyor. Oracle sürücüsü için Microsoft ODBC REF IMLEÇLER kullanımını desteklemiyor.

Daha fazla bilgi

Bu yeni işlevi, önceki sağlayıcı bazı faydaları vardır:
  • Sağlayıcı önceki sürümlerinde, PL/SQL kayıt kümesinde döndürülen her sütun için tablo bildirmek için bir Oracle yordamından bir ADO kayıt kümesini almak için tek yol oldu. Yeni sağlayıcı ile yalnızca bir REF CURSOR bildirmeniz gerekir, sonra tüm sütunları dönüşü işleme.

    Oracle yordamlar aracılığıyla PL/SQL tabloları alma ile ilgili ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    229919Nasıl yapılır: ADO ASP kullanarak Oracle'den bir Recordset alma
  • Sağlayıcı önceki sürümünde en fazla kayıt kümesindeki döndürecektir kayıtların sayısını gerekiyordu. Bir REF CURSOR üzerinde temel bir ADO kayıt kümesini yeniden açtığınızda, bu adım, artık gerekli değildir. Yeni sağlayıcı ile kayıt sayısı için 0 yalnızca belirtebilirsiniz. Örneğin,:

    {call curspkg_join.open_join_cursor1(?, {resultset 0, io_cursor})}
    					
Bu makaledeki örnek kullanmak için <a0></a0>:
  • Microsoft Visual Basic Scripting Edition (VBScript), ActiveX Data Objects (ADO) ve Active Server Pages (ASP) ile yeterli olmalıdır.

  • Oracle paketleri oluşturacağınız, Oracle'nın işlemsel dil/yapılandırılmış sorgu dili anlamalısınız.

  • Internet ınformation Server (IIS), Oracle veritabanı ile çalışmak için doğru şekilde yapılandırılmalıdır.

    Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    193225IIS, ASP ve ADO için Oracle Bağlantısı için yapılandırma

Örnek kod

Aşağıdaki örnek kodu bir REF CURSOR aracılığıyla bir Oracle yordamdan gelen bir ADO kayıt kümesi alma gösterilmiştir ve sonra da bir ASP sayfasında verileri görüntüler. ASP kodunda, Oracle veritabanınıza bağlanmak için kullanılan OLEDB bağlantı dizesini değiştirmeniz gerekir.

  1. Herhangi bir ASP kodu çalıştırmadan önce <a1>Oracle</a1> sunucuda aşağıdaki Oracle paketi oluşturun. Bu paket, Oracle Scott/Tiger şemada tanımlanan bazı tabloların kullanır. Oracle Scott/Tiger şema varsayılan Oracle yükleme işlemine yüklenir. Bu şema yoksa, aşağıdaki tablo komut dosyalarını çalıştırmak ve tabloların içine bazı bilgileri ekleyin:

    Tablo komut dosyaları
    CREATE TABLE DEPT
    (DEPTNO NUMBER(2,0) NOT NULL, 
    DNAME VARCHAR2(14) NULL, 
    LOC VARCHAR2(13) NULL,
    PRIMARY KEY (DEPTNO)
    );
    
    CREATE TABLE EMP
    (EMPNO NUMBER(4,0) NOT NULL, 
    ENAME VARCHAR2(10) NULL, 
    JOB VARCHAR2(9) NULL, 
    MGR NUMBER(4,0) NULL, 
    HIREDATE DATE NULL, 
    SAL NUMBER(7,2) NULL, 
    COMM NUMBER(7,2) NULL, 
    DEPTNO NUMBER(2,0) NULL,
    FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO),  
    PRIMARY KEY (EMPNO)
    );
    						

    Paket komut dosyaları
    CREATE OR REPLACE PACKAGE curspkg_join AS 
    	TYPE t_cursor IS REF CURSOR ; 
    	Procedure open_join_cursor1 (n_EMPNO IN NUMBER, io_cursor IN OUT t_cursor); 
    END curspkg_join;
    / 
    
    CREATE OR REPLACE PACKAGE BODY curspkg_join AS
    Procedure open_join_cursor1 (n_EMPNO IN NUMBER, io_cursor IN OUT t_cursor) 
    IS 
    	v_cursor t_cursor; 
    BEGIN 
    	IF n_EMPNO <> 0 
    	THEN
    		OPEN v_cursor FOR 
    		SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME 
    			FROM EMP, DEPT 
    			WHERE EMP.DEPTNO = DEPT.DEPTNO 
    			AND EMP.EMPNO = n_EMPNO;
    
    	ELSE 
    		OPEN v_cursor FOR 
    		SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME 
    			FROM EMP, DEPT 
    			WHERE EMP.DEPTNO = DEPT.DEPTNO;
    
    	END IF;
    	io_cursor := v_cursor; 
    END open_join_cursor1; 
    END curspkg_join;
    / 
    						
  2. Yukarıdaki yordamı çağıran ASP komut aşağıda verilmektedir:
    <%@ Language=VBScript %>
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    </HEAD>
    <BODY>
    <P>
    <%
    	Const CONNECT = "Provider=MSDAORA.1;Data Source=your_tns_alias_name;User ID=scott;Password=tiger"
    		
    	Dim cn, rs, cmd, param
    	Dim SQL
    
    	set cn = Server.CreateObject( "ADODB.Connection" )
    	cn.Open CONNECT	
    
    	SQL = "{call curspkg_join.open_join_cursor1(?, {resultset 0, io_cursor})}"
    	set cmd = server.CreateObject ("ADODB.Command")
    	with cmd
    		set .ActiveConnection	= cn
    	    .CommandText			= SQL
    	    .CommandType			= 1		'adCmdText
    	    'Pass in 0 to retrieve all of the records
    	    set param = .CreateParameter("id", 131 , 1 , , 0)  '<<131=adNumeric, 1=adParamInput
    	    .Parameters.Append param
    	end with
    					
    	set rs = server.CreateObject ( "ADODB.Recordset" ) 
    	set rs = cmd.execute
    		    
    	%>
    	<TABLE WIDTH="80%" ALIGN=center BORDER=1 CELLSPACING=3 CELLPADDING=3>
    	<%
    	Response.Write ("<TR bgcolor=Gray>")
    	For i = 0 To rs.Fields.Count - 1
    		Response.Write ("<TD>" & rs.Fields(i).Name & "</TD>")
    	Next
    	Response.Write ("</TR>")
    	Do until rs.EOF
    		response.write ("<TR>")
    		for i = 0 to rs.Fields.Count - 1
    			If IsNull(rs(i).value) then 
    				Response.Write ("<TD> NULL </TD>")
    			else 
    				Response.Write ("<TD>" & rs(i).value & "</TD>")
    			end if 
    		next 
    		rs.MoveNext
    		response.write ("</TR>")
    	loop
    	%>
    	</TABLE>
    	<%
    	Set cmd = Nothing
    	Set param = Nothing
    	rs.close
    	Set rs = Nothing
    	cn.close
    	Set cn = Nothing
    %>
    </P>
    </BODY>
    </HTML>
    						

Referanslar

MDAC hakkında daha fazla bilgi için lütfen aşağıdaki Microsoft Web sitesine bakın:
http://msdn2.microsoft.com/en-us/data/aa937695.aspx
Enterprise Edition Oracle8 belgeleri

Özellikler

Makale numarası: 255043 - Last Review: 17 Mayıs 2007 Perşembe - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft OLE DB Provider for Oracle Server 1.0
Anahtar Kelimeler: 
kbmt kbhowto kboracle KB255043 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:255043
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com