Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problemas con Sql manager (https://www.clubdelphi.com/foros/showthread.php?t=95004)

Elias011267 28-12-2020 11:43:07

problemas con Sql manager
 
Buen día. Trabajo con Delphi 10.3 y firebire, con este motor de base de datos utilizo el sql manager (version gratis) Mi problema es que cuando hago un procedimiento almacenado seleccionable (for select) al compilar me borra las líneas donde declaro las variables. Existe una manera para que esto no suceda o simplemente busco un nuevo software de manejar el firebird. Gracias

Casimiro Notevi 28-12-2020 12:23:51

No repitas preguntas.
No hagas las preguntas en el foro "Trucos".
He borrado una y he movido la otra a "Varios".
No olvides nuestra guía de estilo, gracias.

Casimiro Notevi 28-12-2020 12:25:44

En cuanto a tu pregunta, supongo que "firebire" será "Firebird".
Y en cuanto a "sql manager", pues mira si puede trabajar con firebird. Si es que sí, entonces debe funcionar.
En cuanto a tu problema, ni idea, con lo que dices es imposible ayudarte.

movorack 28-12-2020 14:32:24

Buenos días.

Así como te dice Casimiro, la forma en que presentas tu incidente no permite darte mucha ayuda.
- Que versión de Firebird se presenta el inconveniente?
- Hablas de EMS SQL Manager? El incidente solo se presenta en ese programa o también se presenta si ejecutas el script por las herramientas nativas?
- Puedes colocar parte o el script con el que se presenta el problema?

Elias011267 30-12-2020 13:03:08

Buen dia.
Es firebird 3.0 con EMS SQL MANAGER FREEWARE LITE. El problema es solo con los procedure en especifico cuando utilizo el comando for select ya con los otros procedure no presenta problemas. por ejemplo en el procedure siguiente al compilar me borra todo el cuerpo donde declaro las variable, repito, solo con los procedure seleccionables (donde aplico los ' for select'). Descargue el ib expert en caso de no conseguir solucion..
Código SQL [-]
CREATE PROCEDURE PRN_CALCULO (pe_nomina INTEGER)
AS
DECLARE VARIABLE v_id SMALLINT;
DECLARE VARIABLE v_codigo CHAR(4);
DECLARE VARIABLE v_nombre VARCHAR(30);
DECLARE VARIABLE v_apellido VARCHAR (30);
DECLARE VARIABLE v_concepto VARCHAR (30);
DECLARE VARIABLE v_valor DOUBLE PRECISION;
DECLARE VARIABLE v_salario DOUBLE PRECISION;
BEGIN
  for select emp_id, emp_nombre, emp_apellido, emp_salario  
  FROM empleado where emp_condicion= 'A' INTO :v_id, :v_nombre, 
      :v_apellido, :v_salario DO
        BEGIN
          for select cue_codigo, cue_nombre,cue_factor from CUENTAS 
            WHERE cue_fijo INTO :v_codigo, :v_concepto, :v_valor do
            BEGIN
              INSERT INTO DETNOMINA (det_nominaid, det_concepto, det_monto, 
                det_empid) VALUES (:PE_NOMINA, :v_concepto, :v_valor,
                    :v_id);
            END
            SUSPEND;
        END
        SUSPEND;
END^

SET TERM ; ^

Casimiro Notevi 30-12-2020 13:08:46

Será problema de ese software, por lo que veo tienen versión específica para firebird.
https://www.sqlmanager.net/en/tools/free

movorack 30-12-2020 21:54:29

Bueno, no se si con el EMS SQL Manager esté ocurriendo eso. En todo caso si es así y es tu herramienta de preferencia, sería conveniente colocar el reporte en el foro del frabricante.

Con respecto a tu SP, viendo la documentación debes modificar un poco tu SP para que retorne el resultado de la consulta.

Código SQL [-]
CREATE PROCEDURE PRN_CALCULO (pe_nomina INTEGER)
RETURNS ( 
  v_id SMALLINT,
  v_codigo CHAR(4),
  v_nombre VARCHAR(30),
  v_apellido VARCHAR (30),
  v_concepto VARCHAR (30),
  v_valor DOUBLE PRECISION,
  v_salario DOUBLE PRECISION
)
AS
BEGIN
  for select emp_id, emp_nombre, emp_apellido, emp_salario  
  FROM empleado where emp_condicion= 'A' INTO :v_id, :v_nombre, 
      :v_apellido, :v_salario DO
        BEGIN
          for select cue_codigo, cue_nombre,cue_factor from CUENTAS 
            WHERE cue_fijo INTO :v_codigo, :v_concepto, :v_valor do
            BEGIN
              INSERT INTO DETNOMINA (det_nominaid, det_concepto, det_monto, 
                det_empid) VALUES (:PE_NOMINA, :v_concepto, :v_valor,
                    :v_id);
            END
            SUSPEND;
        END
        SUSPEND;
END^

SET TERM ; ^

De todos modos solo modifiqué el script que nos compartes. Debes echarle una revisada antes a ver si es lo que requieres realmente (Esto parace el disclaimer :D)

Elias011267 31-12-2020 11:31:04

Gracias. Referente a tu observacion por el codigo, no necesito retornar ningun valor, solo actualizo la tabla de detalle de nomina por eso solo declare las variables .

Elias011267 31-12-2020 11:43:05

Tambien voy descargar por medio del link que me refiere Casimiro, ya que estoy acostumbrado con EMS. Descargue el Ib expert, pero es un poco tedioso instalarlo..

Casimiro Notevi 31-12-2020 11:49:29

Cita:

Empezado por Elias011267 (Mensaje 539594)
T... Descargue el Ib expert, pero es un poco tedioso instalarlo..

Siempre ha sido: Next, next... y se acabó :)
No sabía que hubiesen cambiado algo.

Elias011267 31-12-2020 12:11:50

1 Archivos Adjunto(s)
Si es tedioso, de hecho hay hasta un video para explicar como se instala. De momento lo instale, pero la costumbre de trabajar con EMS me condiciona para trabajar con otro producto. Archivo Adjunto 3883

Gracias por siempre atender a tiempo a principiantes como yo.

Feliz año

Casimiro Notevi 31-12-2020 13:37:55

Cita:

Empezado por Elias011267 (Mensaje 539596)
Si es tedioso, de hecho hay hasta un video para explicar como se instala. De momento lo instale, pero la costumbre de trabajar con EMS me condiciona para trabajar con otro producto. Archivo Adjunto 3883
Gracias por siempre atender a tiempo a principiantes como yo.
Feliz año


¡¡¡Ese documento/video es para CRACKEAR la versión de pago!!!


Descarga de ibexpert la versión personal, y listo.

movorack 03-01-2021 22:51:32

Cita:

Empezado por Elias011267 (Mensaje 539593)
Gracias. Referente a tu observacion por el codigo, no necesito retornar ningun valor, solo actualizo la tabla de detalle de nomina por eso solo declare las variables .

Error mío. Pensé que te referias a un SP que devolviera un record.

Cita:

Empezado por Elias011267 (Mensaje 539596)
Si es tedioso, de hecho hay hasta un video para explicar como se instala. De momento lo instale, pero la costumbre de trabajar con EMS me condiciona para trabajar con otro producto.

[OFFTOPIC]
Tedioso y condicionado? :eek: :confused:
[/OFFTOPIC]

En la misma web de Firebird puedes conseguir varias herramientas para trabajar con la base de datos. (https://firebirdsql.org/en/third-party-tools/).

Te recomiendo que elijas la de tu preferencia, instales y pruebes si al compilar el SP con esa herramienta se reproduce el error. Así descartas si es la herramienta o algo en tu base de datos. A la final si el error es del EMS SQL Manager, como ya te dije. Quienes te pueden dar la solución son los fabricantes de ese software. O la comunidad que lo usa.


La franja horaria es GMT +2. Ahora son las 01:47:06.

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