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 14-12-2006
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 19
fedelphi Va por buen camino
Proc. almacenado como contador

Hola de nuevo, estoy trabajando con firebird y accedo mediante dbExpress en turbodelphi 2006, hice un procedimiento almacenado en el cual cuento la cantidad de registros de una tabla, y a este valor lo devuelvo en un parametro, en el modulo de datos utilizo un SQLStoredProc para utilizar el valor,
Código SQL [-]
SET TERM ^ ;
ALTER PROCEDURE PRUEBA (
    ENTRADA Integer )
RETURNS (
    SALIDA Integer )
AS
BEGIN
  SELECT COUNT(*) FROM TICKETS INTO :salida;
  SUSPEND;
END^
SET TERM ; ^
le asigne el procedimiento, le configure los parametros de entrada y salida pero cuando lo activo, propiedad active a true me da un error que dice:
SQLSPcontador:Cursor not returned from query. Pero si fijo en la propiedad params[n].value me devuelve la cantidad de registros. Alguien puede ayudarme con este problemita o problemon, no lo se en realidad.
Gracias
Fede
__________________
De lo que hay no falta nada!!!

Última edición por fedelphi fecha: 14-12-2006 a las 22:24:10. Razón: omisión del sql
Responder Con Cita
  #2  
Antiguo 15-12-2006
Guti13 Guti13 is offline
Miembro
 
Registrado: jun 2006
Posts: 35
Poder: 0
Guti13 Va por buen camino
Cita:
Empezado por fedelphi
Hola de nuevo, estoy trabajando con firebird y accedo mediante dbExpress en turbodelphi 2006, hice un procedimiento almacenado en el cual cuento la cantidad de registros de una tabla, y a este valor lo devuelvo en un parametro, en el modulo de datos utilizo un SQLStoredProc para utilizar el valor,Código SQL [-]SET TERM ^ ;
ALTER PROCEDURE PRUEBA (
ENTRADA Integer )
RETURNS (
SALIDA Integer )
AS
BEGIN
SELECT COUNT(*) FROM TICKETS INTO :salida;
SUSPEND;
END^
SET TERM ; ^


le asigne el procedimiento, le configure los parametros de entrada y salida pero cuando lo activo, propiedad active a true me da un error que dice:
SQLSPcontador:Cursor not returned from query. Pero si fijo en la propiedad params[n].value me devuelve la cantidad de registros. Alguien puede ayudarme con este problemita o problemon, no lo se en realidad.
Gracias
Fede
Prueba a quitar la instrucción suspend;. Esta solo es necesaria para uso de procedimientos almacenados en sentencias Select.


Saludos
Responder Con Cita
  #3  
Antiguo 15-12-2006
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 19
fedelphi Va por buen camino
Gracias Guti13, pero ya lo habia probado y nada. Lo que realice fue no activarlo, sino en runtime hacer SQLSPcontador.ExecProc, ya que este error se genera porque el Proc Almac no devuelve un set de registros, sino un valor en su parametro salida. Asi que está solucionado.
Fede
__________________
De lo que hay no falta nada!!!
Responder Con Cita
  #4  
Antiguo 15-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Teóricamente, deberías eliminar el Suspend del SP y después ejecutar (ExecProc) el mismo. Básicamente es lo dicho por Guti13

Hay 2 tipos de procedimientos almacenados:
- de selección
- de ejecución

La diferencia es conceptual:
- Cuando devuelves un set de registros (SP de selección), debes utilizar Suspend dentro del SP y además abrirlo con .Open en delphi, además puedes usar una simple consulta (TQuery) con la instrucción:
Código SQL [-]
select * from nombreSP

- Cuando solo asignas un parámetro de salida, (SP de ejecución) no tiene sentido usar Suspend y además se ejecutará con ExecProc. Deberás usar un IBStoreProcedure o similar.

Espero que haya aclarado algo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 15-12-2006
Avatar de fedelphi
fedelphi fedelphi is offline
Miembro
 
Registrado: abr 2006
Ubicación: Santa Fe
Posts: 122
Poder: 19
fedelphi Va por buen camino
Gracias Lepe, estuvo muy bien tu aclaración, recien estoy aprendiendo con firebird y dbExpress y me vino muy bien.
Fede
__________________
De lo que hay no falta nada!!!
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
Cómo puedo hacer un contador de visitas? Shidalis PHP 11 16-05-2006 15:33:30
Problemas al restar campos timestamp en Proc. Almacenado Choclito Firebird e Interbase 2 12-02-2005 02:10:43
Commit en Trigger ó Proc. Almacenado???? AGAG4 SQL 2 06-10-2004 20:45:48
Dar Tiempo en un Trigger ó Proc. Almacenado AGAG4 Conexión con bases de datos 2 13-09-2004 20:29:29
Como actualizar mi contador numerico en dos o mas aplicaciones? IcebergDelphi Firebird e Interbase 2 16-06-2003 05:46:11


La franja horaria es GMT +2. Ahora son las 17:05:54.


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