Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Oracle
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-08-2003
Jaco Jaco is offline
Miembro
 
Registrado: ago 2003
Posts: 14
Poder: 0
Jaco Va por buen camino
savepoint en oracle

alguien ha usado un savepoint (PL/SQL), me puede explicar mas al respecto???.
Gracias..
__________________
J4CO
Responder Con Cita
  #2  
Antiguo 19-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
La idea de los SavePoints es manejar por pasos las transacciones, pudiendo hacer rollbacks hasta un punto marcado por el savepoint y no por toda la sesión.

Código:
INSERT INTO ...;
SAVEPOINT A;
UPDATE ....;
SAVEPOINT B;
INSERT INTO ...;
SAVEPOINT C;
IF .... THEN
  ROLLBACK TO B;
ELSE
  COMMIT;
END;
Digamos que el ejemplo no es nada útil, pero la idea es demostrar la funcionalidad de los savepoints.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 19-08-2003
Jaco Jaco is offline
Miembro
 
Registrado: ago 2003
Posts: 14
Poder: 0
Jaco Va por buen camino
Lightbulb

pero por ejemplo en la sentencia IF....THEN como podria preguntar que las ordenes Sql anteriores se hallan ejecutado bien???..
Gracias
__________________
J4CO
Responder Con Cita
  #4  
Antiguo 19-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cuando una consulta no se ejecuta bien, esta produce un error. Para eso te recomiendo investigar la captura de errores de PLSQL, es muy parecida a ADA.
Básicamente cada bloque (begin..end), puede capturar errores.. Ej:

[code]
FUNCTION GET_ALGO(AId IN NUMBER) RETURN NUMBER AS
nResult NUMBER;
BEGIN
SELECT ...
INTO nResult
FROM TABLA
WHERE ID = AId;

RETURN nResult;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
WHEN OTHERS THEN
RETURN -1;
END;

Y se podrían anidar bloques dentro de este, con sus respectivas capturas de errores.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 21-08-2003
Jaco Jaco is offline
Miembro
 
Registrado: ago 2003
Posts: 14
Poder: 0
Jaco Va por buen camino
Question

existe alguna dirección donde salga algun ejemplo mas concreto respecto a los Savepoint.... donde pueda sacar la manera de implementarlo??, he leido bastante pero no se como implementarlo en un caso practico..
Gracias de antemano..
__________________
J4CO
Responder Con Cita
  #6  
Antiguo 21-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Te digo que prácticamente en los últimos 5 años no los he usado nunca... recuerdos haberlos usado en la época del sqlplus, cuando uno iba probando algo y si fallaba quería deshacer los cambios hasta tal punto... Pero dentro de un procedure, evito utilizar transacciones, a no ser que sea un proceso muy grande.
Si deseas buscar ejemplos, en oracle.com no deben faltar.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 21-08-2003
Jaco Jaco is offline
Miembro
 
Registrado: ago 2003
Posts: 14
Poder: 0
Jaco Va por buen camino
Thumbs up

con eso me queda claro..
Gracias..
__________________
J4CO
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


La franja horaria es GMT +2. Ahora son las 05:56:46.


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