Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2015
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
oracle bloques anonimos que devuelvan registros

Buenos días,
tengo un problemilla que seguro que alguno me puede echar una mano.

Situación:
Exploto dos sistemas:
- SQLServer
- Oracle

Utilizo ADO, concretamente ADOQuery en los dos casos.

Con SQLServer ( concretamente su PL/SQL) me permite utilizar en las querys variables, cursores, ... Por lo tanto en la misma query declaro una tabla temporal, variables, cursores, hago lo que necesito, lo cargo en la tabla temporal y devuelvo una select de la tabla declarada. Perfecto.

Con Oracle, sólo puedo hacer querys simples. No puedo utilizar variables, ni nada de nada, sólo lo que es una select más o menos compleja.

He visto que con oracle se pueden ejecutar bloques anónimos. Se escriben , se ponen en una ADOQuery y se ejecutan. Pero yo lo que necesito es que el resultado sea un conjunto de registros, es decir, como una query.

No puedo tocar la bbdd, por eso tengo que ejecutar fuera de ella todo lo que necesito.

Alguien ha tenido el mismo problema ? En caso afirmativo, cómo lo ha resuelto?

Os aviso que sólo quiero programar bloques de PL/SQL, no puedo meter lógica en delphi.

Gracias y un saludo.

PD: Os explico un pequeño ejemplo de lo que necesito:
Con una select recupero uno cientos de registros. Por cada registro necesito calucular un dato en base a datos de otra tabla. Monto todo en una tabla temporal, y hago una select de la misma que obtiene los resultados que necesito. Este resultado se visualiza en un clientdataset, que presnto en pantalla, imprimo, vuelco a excel, ....
Todo son lecturas, no hago ninguna actualización de datos.
No puedo utilizar ninguna herramienta diferente, y utilizo ADO porque me permite conectarme via odbc a multiples orígenes de datos.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 20-01-2015
elrayo76 elrayo76 is offline
Miembro
 
Registrado: ene 2004
Ubicación: En la tierra, por eso mis archivos en la tierra y no en la nuebe...
Posts: 290
Poder: 21
elrayo76 Va por buen camino
Hola,

Lo que te propongo y te puede servir es usar cursores para levantar los datos de la primer tabla y hacer el cálculo que necesitas. Luego recorres ese cursor y lo vas cargando en la tabla temporal. Con los datos en esa tabla haces el select que necesitas listo.

En este momento no tengo a mano el enlace de Oracle donde explica como usar cursores, pero ingresa en su sitio y busca que hay mucha información ahí.

Saludos,
El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno
Responder Con Cita
  #3  
Antiguo 21-01-2015
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Gracias por responder, elrayo76

mi pregunta es más concreta:
COn una query ADO puedo hacer todo esto? es decir, crear la tabla temporal, definir el cursor, recorrerlo, hacer algún cálculo y mostrar los registros?

Lo pregunto porque en SQLServer sí se puede.

La dificultad no es programar el proceso, sino que funcione. Esto lo necesito así porque en la aplicación que tengo "mezclo" datos de varios sistemas. La conexióna los mismos la hago vía odbcs varios definidos en el equipo desde donde se lanzan los procesos.

Espero haberme explicado bien, ya que el contexto es el que me condiciona.

Gracias de nuevo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Registros en en bloques de 100 o mas... Jose Roman Conexión con bases de datos 18 25-06-2010 17:42:13
Experiencias con Metodos Anónimos y Generics gatosoft Debates 4 04-06-2010 17:33:08
Por favor, devuelvan la furgoneta Ivanzinho La Taberna 4 03-10-2008 18:17:29
Listado de proxys anónimos!! DarkByte Varios 2 22-03-2004 08:23:25


La franja horaria es GMT +2. Ahora son las 00:56:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi