Jak načíst ADO Recordset z Oracle Through ASP použití KURZORŮ REF

Překlady článku Překlady článku
ID článku: 255043 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

S vydáním součástí Microsoft Data Access Components (MDAC) 2.5 zprostředkovatele Microsoft OLEDB Oracle nyní podporuje vrácení sady záznamů ActiveX Data Objects (ADO) z procedury Oracle prostřednictvím použití z typu REF CURSOR. Tato funkce je podporována pouze ve zprostředkovateli Microsoft OLEDB Oracle. Microsoft ODBC for Oracle ovladač nepodporuje použití KURZORŮ REF.

Další informace

Nové funkce má některé výhody přes předchozí zprostředkovatele:
  • V předchozích verzích zprostředkovatele bylo jediným způsobem, jak načíst sadu záznamů ADO z procedury Oracle deklarovat tabulky PL/SQL pro každý sloupec byl vracených v sadě záznamů. S nového zprostředkovatele potřebujete deklarovat jeden REF CURSOR, které pak zpracovává vrácení všech sloupců.

    Další informace o načítání Oracle procedury prostřednictvím PL/SQL tabulek klepněte článku číslo článku databáze Microsoft Knowledge Base:
    229919Jak načíst objektu Recordset z Oracle použití ADO na ASP
  • V předchozí verzi zprostředkovatele bylo určit maximální počet záznamů, které by v sadě záznamů vrátit. Když otevřete sadu záznamů ADO, který je založen na REF CURSOR, není nadále nutné daný krok. Nového zprostředkovatele můžete podobně zadat 0 počet záznamů. Například:

    {call curspkg_join.open_join_cursor1(?, {resultset 0, io_cursor})}
    					
Použití vzorku v tomto článku:
  • Měli byste být proficient s Microsoft Visual Basic Scripting Edition (VBScript), ActiveX Data Objects (ADO) a Active Server Pages (ASP).

  • Pokud bude, být vytvoření balíčků Oracle, je nutné porozumět Oracle procedurální jazyk/strukturované dotazovací jazyk.

  • Práce s databázi Oracle nutné správně nakonfigurovat váš Internet Information Server (IIS).

    Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
    193225Jak nakonfigurovat připojení k Oracle z ASP a ADO IIS

Ukázkový kód

Následující ukázkový kód demonstruje načíst sadu záznamů ADO z procedury Oracle prostřednictvím REF CURSOR a zobrazí data na stránce ASP. Je třeba upravit řetězec připojení OLEDB použitý v kódu ASP k připojení k databázi Oracle.

  1. Vytvořte následující balíček Oracle na serveru Oracle před spuštěním libovolné kódu ASP. Tento balíček používá některé tabulek definovaných ve schématu Oracle Scott/Tiger. Scott Oracle/Tiger schématu je nainstalována s výchozí instalace Oracle. Toto schéma neexistuje, musíte spustit skripty následující tabulky a vložit některé informace do tabulek:

    Skripty tabulky
    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)
    );
    						

    Balíček skripty
    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. Skript ASP volá předchozí postup je následující:
    <%@ 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>
    						

Odkazy

Další informace o MDAC naleznete na následujícím webu:
http://msdn2.microsoft.com/en-us/data/aa937695.aspx
Dokumentace Oracle8 Enterprise Edition

Vlastnosti

ID článku: 255043 - Poslední aktualizace: 17. května 2007 - Revize: 3.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft OLE DB Provider for Oracle Server 1.0
Klíčová slova: 
kbmt kbhowto kboracle KB255043 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:255043
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

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