Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Tarayıcınız desteklenmiyor

Siteyi kullanmak için tarayıcınızı güncelleştirmeniz gerekir.

Internet Explorer'ın en son sürümüne güncelleştirin

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

Ö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.
Ö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 ASProcedure 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: Enterprise Edition Oracle8 belgeleri
ref_cursor

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 255043 - Son İnceleme: 05/17/2007 10:33:26 - Düzeltme: 3.3

  • Microsoft OLE DB Provider for Oracle Server 1.0
  • kbmt kbhowto kboracle KB255043 KbMttr
Geri bildirim
=4050&did=1&t=">