Como usar um DataReader contra um Oracle procedimento armazenado no Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 308073
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 309361.
Para uma versão deste artigo do Microsoft Visual C++. NET, consulte 309362.

Este artigo se refere ao seguinte namespace Microsoft .NET Framework Class Library:
  • System.Data.OLEDB

NESTA TAREFA

Sumário
Este artigo passo a passo usa o objeto DataReader para recuperar dados de um procedimento armazenado Oracle. Você pode usar o DataReader para recuperar um fluxo somente leitura, somente de encaminhamento de dados de um banco de dados. Usar o DataReader pode aumentar o desempenho do aplicativo e reduzir a sobrecarga do sistema porque apenas uma linha já está na memória.

back to the top

Requisitos

A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ou Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Cliente do Oracle 8.17 ou posterior
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Microsoft Visual Basic .NET
  • Conceitos básicos do ADO.NET e sintaxe
back to the top

Criar tabelas Oracle

Este exemplo usa tabelas que são definidas no Oracle Scott/Tiger esquema. O esquema do Oracle Scott/Tiger é incluído com a instalação padrão do Oracle.

Se este esquema não existir, você deve executar a tabela a seguir e inserir scripts para as tabelas:
   CREATE TABLE DEPT   (DEPTNO NUMBER(2,0) NOT NULL,    DNAME VARCHAR2(14) NULL,    LOC VARCHAR2(13) NULL,   PRIMARY KEY (DEPTNO)   );   INSERT INTO Dept VALUES(11,'Sales','Texas');   INSERT INTO Dept VALUES(22,'Accounting','Washington');   INSERT INTO Dept VALUES(33,'Finance','Maine');   CREATE TABLE EMP   (EMPNO NUMBER(4,0) NOT NULL,    ENAME VARCHAR2(10) NULL,    JOB VARCHAR2(9) NULL,    MGR NUMBER(4,0) 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)   );    INSERT INTO Emp VALUES(123,'Bob','Sales',555,35000,12,11);   INSERT INTO Emp VALUES(321,'Sue','Finance',555,42000,12,33);   INSERT INTO Emp VALUES(234,'Mary','Account',555,33000,12,22);				
back to the top

Criar pacotes para o Oracle

Crie o seguinte pacote Oracle no servidor Oracle:
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;   / 				
criar o corpo de pacote Oracle seguinte no servidor Oracle:
   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;   / 				
back to the top

Criar o aplicativo .NET Visual Basic

  1. Crie um novo projeto Visual Basic Windows Application. Form1 é adicionado para o projeto por padrão.
  2. Adicione o código a seguir na parte superior da janela código:
    Imports System.Data.OleDB					
  3. Adicione o seguinte código ao evento Form_Load do Form1:
            Dim Oraclecon As New OleDbConnection("Provider=MSDAORA.1;Password=tiger;" & _                                             "User ID=scott;Data Source=MyOracleServer;" & _                                             "Persist Security Info=True")        Oraclecon.Open()        Dim myCMD As New OleDbCommand _        ("{call curspkg_join.open_join_cursor1(?, {resultset 0, io_cursor})}", Oraclecon)        myCMD.Parameters.Add("ID", OleDbType.Numeric, 4).Value = 123        Dim myReader As OleDbDataReader        myReader = myCMD.ExecuteReader()        Dim x, count As Integer        count = 0              Do While myReader.Read()            For x = 0 To myReader.FieldCount - 1                Console.Write(myReader(x) & " ")            Next            Console.WriteLine()            count += 1        Loop        MsgBox(count & " Rows Returned.")        myReader.Close()        Oraclecon.Close()					
  4. Modificar a seqüência OleDbConnection conforme apropriado para seu ambiente.
  5. Pressione a tecla F5 para compilar e executar o aplicativo. Observe que os dados do procedimento armazenado Oracle aparece na janela e uma contagem de linha aparecerá em uma caixa de mensagem.
back to the top

Informações adicionais

Observe que o código percorre o DataReader :
Do While myReader.Read()Loop				
é porque o DataReader lê apenas uma linha por vez.

back to the top
Referências
Para obter informações adicionais sobre um procedimento semelhante no Visual Basic 6.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
176086Como recuperar Recordsets do Oracle armazenados procedimentos usando o ADO
Para obter mais informações sobre o DataReader , consulte o tópico seguinte no Microsoft .NET software documentação Development Kit (SDK): back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 308073 - Última Revisão: 07/14/2004 18:58:17 - Revisão: 4.2

Microsoft ADO.NET (included with the .NET Framework), Microsoft ADO.NET 1.1, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbmt kbhowtomaster kbsystemdata KB308073 KbMtpt
Comentários