Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2007
Avatar de UREÑA
UREÑA UREÑA is offline
Miembro
 
Registrado: feb 2007
Posts: 75
Poder: 18
UREÑA Va por buen camino
Unhappy procedimientos almacenados

hola buen dia!!

hice un procedimiento almacenado pero no se como lo puedo mandar llamar desde delphi o mas bien como funciona

Código SQL [-]
SET TERM ^ ;

CREATE PROCEDURE SP_ACTUALIZA_ALUMNO (
    N_LISTA VARCHAR(5),
    NOMBRE_ALU VARCHAR(50),
    FECHA_NAC VARCHAR(10),
    SEXO VARCHAR(1),
    CURP VARCHAR(18),
    PAIS_NAC VARCHAR(30),
    ENTIDAD_NA VARCHAR(2),
    MUNICIPIO VARCHAR(3),
    INCONGRUEN VARCHAR(3),
    BECA VARCHAR(8),
    DOMICILIO VARCHAR(60),
    NOMBRE_PAD VARCHAR(30),
    TELEFONO VARCHAR(11),
    OBSERVACIO VARCHAR(200),
    LENGUA_EXT VARCHAR(3),
    TECNOLOGIA VARCHAR(3),
    RFC VARCHAR(14),
    TURNO INTEGER,
    GRADO INTEGER,
    GRUPO VARCHAR(1))
AS
begin
  /* Procedure Text */
  update Tbl_alumno set N_Lista = :n_lista, NOMBRE_ALU = :nombre_alu, FECHA_NAC = :fecha_nac, SEXO = :sexo, CURP = :curp, PAIS_NAC = ais_nac, ENTIDAD_NA = :entidad_na, MUNICIPIO = :municipio, INCONGRUEN = :incongruen, BECA = :beca, DOMICILIO = :domicilio, NOMBRE_PAD = :nombre_pad, TELEFONO = :telefono, OBSERVACIO = bservacio, LENGUA_EXT = :lengua_ext, TECNOLOGIA = :tecnologia
  where RFC = :rfc and TURNO = :turno and GRADO = :grado and GRUPO = :grupo ;
  suspend;
end^

SET TERM ; ^

GRANT SELECT,UPDATE ON TBL_ALUMNO TO PROCEDURE SP_ACTUALIZA_ALUMNO;

GRANT EXECUTE ON PROCEDURE SP_ACTUALIZA_ALUMNO TO SYSDBA;
les agradeceria infinitamente gracias

//Lo edite para colocar las etiquetas [sql]

Última edición por jhonny fecha: 07-03-2007 a las 19:03:34.
Responder Con Cita
  #2  
Antiguo 07-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Desde Delphi puedes ejecutar ese procedimiento usando un componente de consulta como un (TQuery, TADOQuery, etc...) o también un componente de StoredProcedure como un (TStoredProc, TADOStoredProc, etc...)
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 07-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Ese tipo procedimientos almacenados es de acción, es decir, realiza una serie de acciones en tu base de datos pero no devuelve un conjunto de datos, por tanto el suspend sobra (debes quitarlo).

Por ser de acción, debería usarse con un TStoredProc. Nunca he probado si con un TQuery puede hacerse. Creo que sí, pero teniendo en su sql algo así:
Código SQL [-]
exec proc SP_ACTUALIZA_ALUMNO(....);

Por dar más info, cuando tiene parámetros de salida (returning values) o internamente se realiza un :
Código SQL [-]
for select * from ... 
   into :variableDeSalida1 :VariableDeSalida2 do
      suspend;
Entonces sí se usa el suspend (para que devuelva cada registro) y además se hace a través de un Tquery, es decir, se usa como una tabla más.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 07-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Lepe
Nunca he probado si con un TQuery puede hacerse
Todo lo que haz dicho es cierto, y solo escribo para ratificar que lo de el TQuery también es cierto la manera de emplearlo así:

Código SQL [-]
exec proc SP_ACTUALIZA_ALUMNO(....);
Y además que al TQuery en ese caso abría que ejecutarlo no con el típico .Open si no con el .ExecSQL
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
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
procedimientos almacenados datorar Conexión con bases de datos 8 03-01-2006 17:05:43
procedimientos almacenados Gabriel2 SQL 1 13-01-2005 14:50:09
Procedimientos Almacenados tuto Conexión con bases de datos 0 08-11-2004 14:42:05
Procedimientos almacenados VS UDF rqc Firebird e Interbase 6 18-03-2004 01:29:46
Procedimientos Almacenados Gabriel A Reyes MS SQL Server 5 07-07-2003 14:08:46


La franja horaria es GMT +2. Ahora son las 23:05:41.


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