Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Cursor not returned from Query (https://www.clubdelphi.com/foros/showthread.php?t=75498)

Antoniov 29-08-2011 12:10:35

Cursor not returned from Query
 
Estoy usando Delphi XE y firebird 2.5.


Intento poner un StoredProc y me da el error "Cursor not returned from Query"

El procedimiento almacenado es muy simple, sólo tiene que devolver el siguiente código y funciona perfectamente porque lo he probado directamente desde la base de datos.

Código SQL [-]
CREATE PROCEDURE SIGUIENTE_COD_MENSAJE
RETURNS(
  NEXT_CODIGO INTEGER)
AS
BEGIN
  set NOCOUNT  ON;
  NEXT_CODIGO = GEN_ID(MENSAJES_CODMENSAJE_GEN, 1);

  SUSPEND;
END
;

Pero cuando lo pongo en Delphi y le quiero poner la propiedad "Active = TRUE" directamente en el DataModule, salta el dichoso error.

Uso tanto el SQLStoredProc como el TSQLDataSet y en todos da un error.
Esto lo usaba antes en Delphi 7 y funcionaba sin problemas.

Alguna sugerencia?

Antoniov 29-08-2011 12:24:54

Nota a tener en cuenta
 
Lo del SET NOCOUNT ON se me coló, eso realmente no va.

He visto en algunos foros que con eso se solucionaba pero cuando lo intento poner en el procedure me da error.

Como ejemplo del procedimiento se puede poner cosa como este ejemplo simple, cualquier cosa da error.
Código SQL [-]
CREATE PROCEDURE NEW_PROCEDURE
RETURNS(
  RDO SMALLINT)
AS
BEGIN
  Rdo = 5;
  
  /* Procedure body */
  SUSPEND;
END;

Casimiro Notevi 29-08-2011 13:21:12

Aparentemente está bien, salvo lo del smallint, ya que los generadores devuelven ahora un bigint.
De todas formas, ¿lo has probado desde ibexpert o alguna herramienta similar?, para descartar que no es problema desde tu programa.

Antoniov 29-08-2011 13:39:56

Cursor not returned from Query
 
No es un problema del programa porque para probarlo no hay que añadir ni una línea de código, ni siquiera ejecutar el programa.

Crea un procedimiento en la base de datos de lo más simple.

Entra en Delphi, Pones el TSQLConnection
Poner el TSQLStoreProc apuntando al procedure creado

E intentas poner la propiedad Active a TRUE, y sale el error.

Esto no pasaba en Delphi 7.

Alguien tiene el Delphi XE y puede hacer una prueba?

Gracias

Casimiro Notevi 29-08-2011 16:13:34

Cita:

Empezado por Antoniov (Mensaje 410340)
No es un problema del programa porque para probarlo no hay que añadir ni una línea de código, ni siquiera ejecutar el programa.
Alguien tiene el Delphi XE y puede hacer una prueba?

¿Entonces para qué quieres que lo pruebe otra persona?

Antoniov 29-08-2011 16:47:08

Cursor not returned from Query: SOLUCIONADO
 
El problema es que intentaba usar la propiedad Active en lugar de usar ExecProc.

Solucionado.

Gracias a todos.

Casimiro Notevi 29-08-2011 17:05:53

Cita:

Empezado por Antoniov (Mensaje 410340)
Esto no pasaba en Delphi 7.

¿Entonces pasaba o no pasaba con D7?


La franja horaria es GMT +2. Ahora son las 12:25:56.

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