Foros del Web » Programación para mayores de 30 ;) » .NET »

C# y oracle, auxilio

Estas en el tema de C# y oracle, auxilio en el foro de .NET en Foros del Web. Hola a todos mi nombres Ricardo Marin, bueno mi problema es el siguiente, en la empresa donde estoy trabajando se utiliza C# con oracle y ...
  #1 (permalink)  
Antiguo 10/09/2007, 09:21
Avatar de rmarinsd  
Fecha de Ingreso: septiembre-2007
Mensajes: 78
Antigüedad: 16 años, 7 meses
Puntos: 0
C# y oracle, auxilio

Hola a todos mi nombres Ricardo Marin, bueno mi problema es el siguiente, en la empresa donde estoy trabajando se utiliza C# con oracle y pues trabajamos casi sin problemas, es decir en una clase en especifico hay una instruccion que da broncas se pasma la computadora por cerca de un minuto. Yo pensaba que era la consulta a la DB pero ya la cronometre y tarda menos de un segundo incluso ya la probe manualmente y no hay ninguna bronca. Esta es la parte que da el problema:

this.Read();
try
{
while (this.oReader.Read())
{
oMoto = new Motocicleta();
m_Motocicleta.ComprasStatus = (eCompraStatus)(int)this.oReader["comprastatus"];
...
...
m_Motocicleta.CompraExistente.Add(oMoto);
oMoto.NumeroInventario = (long)this.oReader["mot_numeroinventario"];
m_Motocicleta.CompraExistente.Add(oMoto);
i++;
}
this.oConnection.Close();
}
catch (Exception ex)
{
return;
}

Y la instruccion donde da la bronca es:

this.oReader.Read()

la cual se utiliza en varias clases y en ninguna otra da broncas, asi que no se que hacer alguien mas ha tenido el mismo error, porfavor si alguien me puede ayudar mil gracias de antemano.

Atte.

Ricardo Marin
  #2 (permalink)  
Antiguo 10/09/2007, 10:01
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: C# y oracle, auxilio

Personalmente no me gusta utilizar Readers.
Yo utilizo DataAdapters y DataSets para trabajar desconectado. El read() se hace conectado y puede ser que otra cosa te lo este "trancando". Implementa un metodo igual pero con DataAdapter a ver si demora lo mismo.
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 27/04/2010, 23:43
 
Fecha de Ingreso: julio-2009
Mensajes: 28
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: C# y oracle, auxilio

-- CREACION DE UN CURSOR PARA UTILIZARLO EN NUESTRO PROCEDIMIENTO
create or replace package types
as
type typecursor is ref cursor;
end;





-- CREACION DE UN PROCEDURE QUE INSERTA REGISTROS + EL CODIGO AUTOGENERADO E INCREMENTADO
create or replace procedure spgenera( -- CREANDO EL PROCEDURE
nomp in articulos.art_nom%type, --VARIABLES K COINCIDEN CON LA TABLA
uni in articulos.art_uni%type, -- SE PONE (%TYPE) PARA YA NO DECLARAR DE QUE TIPO ES, SINO QUE DECIMOS K ES DEL TIPO DE REGISTRO DE LA TABLA
puni in articulos.art_pre%type,
stk in articulos.art_stk%type,
pcursor out types.typecursor) -- ESETE ES EL CURSOR
as
cod char(5); --VARIABLE LOCAL PARA CONCATENAR EL NUEVO CODIGO
nro int; -- PARA INCREMENTAR EL NUMERO
begin
select nvl(max(art_cod),'00000') into cod from articulos;-- (NVL) PARA VALIDAR QUE NO SEA NULO Y LO GUARDAMOS EN LA VARIABLE cod Y SI ESTUVIERA NULO SEPONE 0000
nro:= substr(cod,2,4)+1; -- DEL ULTIMO CODIGO EXTRAEMOS LOS NUMEROS
cod:='A' ||trim(to_char(nro,'0000')); -- CONCATENAR LA CADENA K ES X DEFAULT (A) + EL NUMERO YA INCREMENTADO
insert into articulos values(cod,nomp,uni,puni,stk);--INSERTANDO LA DATA
commit; -- EJECIUTA LA TRANSACCION
open pcursor for--ABRIMOS EL CURSOR PARA LEER EL CODIGO INCREMENTADO EN CASO K SE KICIERA IMPRIMIRLO
select max(art_cod) from articulos; -- IMPRIMIENDO EL CODIGO DEL NUEVO REGISTRO QUE SE ACABA DE INSERTAR
end; -- FINALIZANDO EL PROCEDURE

SELECT art_cod FROM articulos -- A0011

:::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::
http://my.opera.com/eldavan/blog/
:::::::::::::::::::::::::::::: aki proyectos en C# con oracle :::::::::::::::::::::::
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:22.