Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   ¿Firebird soporta consultas que devuelven más de un cursor ("record set")? (https://www.clubdelphi.com/foros/showthread.php?t=81376)

poliburro 12-11-2012 23:04:54

Cita:

Empezado por roman (Mensaje 449284)
No, no, es un comparación injusta y fuera de lugar.

// Saludos

Injusta no lo se, fuera de lugar no lo creo... aquí se está defendiendo la gratuidad y el ejemplo que ha puesto egostar es claro. Cuando es gratis todo mundo se interesa pero cuando algo cuesta a nadie le importa...

Hay un dicho en México que lo refleja: "Gratis hasta unas puñaladas"

Es verdad que pocos conocen del tema pero me pregunto... habría tenido tan poca asistencia si el tema fuera que se regalaba ese libro?

Casimiro Notevi 12-11-2012 23:18:22

Pienso que igual de concurrido, por ejemplo, yo no sabía que fuese de pago, sólo vi el anuncio y pensé "vaya, para cuando me haga falta ya sé a donde debo acudir por un libro sobre este tema", no llegué siquiera a profundizar para ver si era de pago o gratis o libre.

roman 13-11-2012 01:08:07

Cita:

Empezado por poliburro (Mensaje 449286)
Injusta no lo se, fuera de lugar no lo creo... aquí se está defendiendo la gratuidad y el ejemplo que ha puesto egostar es claro. Cuando es gratis todo mundo se interesa pero cuando algo cuesta a nadie le importa...

Hay un dicho en México que lo refleja: "Gratis hasta unas puñaladas"

Es verdad que pocos conocen del tema pero me pregunto... habría tenido tan poca asistencia si el tema fuera que se regalaba ese libro?

Vamos a ver. ¿Qué tipo de interés esperabas? El hilo tiene 368 visitas en un mes, nada mal. ¿Esperabas 368 mensajes diciendo "gracias"? No tiene punto de comparación un hilo que abre la posibilidad a discusión que uno que simplemente es una noticia. Y eso nada tiene que ver con la calidad de uno u otro ni tampoco con la gratuidad. Para el caso, estos foros, en su totalidad, ni siquiera existirían pues Delphi es un producto de pago (y muy alto).

// Saludos

egostar 13-11-2012 16:29:19

Cita:

Empezado por roman (Mensaje 449297)
Vamos a ver. ¿Qué tipo de interés esperabas? El hilo tiene 368 visitas en un mes, nada mal. ¿Esperabas 368 mensajes diciendo "gracias"? No tiene punto de comparación un hilo que abre la posibilidad a discusión que uno que simplemente es una noticia. Y eso nada tiene que ver con la calidad de uno u otro ni tampoco con la gratuidad. Para el caso, estos foros, en su totalidad, ni siquiera existirían pues Delphi es un producto de pago (y muy alto).

// Saludos

Ciertamente, fué desmedida mi compraración entre esos dos hilos, debí buscar uno que tuviese las mismas características.

Y si, encontré uno que tiene características "similares". La cara oculta de delphi 6 (regalo de Ian Marteens).

Saludos

Casimiro Notevi 13-11-2012 16:36:38

36 respuestas en 2 años, las visitas aumentan bastante todos los días por culpa de los 'bots' de google, microsoft, etc.
Habrá que esperar un par de años para comparar :)

Casimiro Notevi 13-11-2012 16:44:31

Yo creo, sinceramente, que la diferencia de "popularidad" es debida única y exclusivamente a que el libro del amigo jachguate es muy técnico y avanzado, su temática no está al alcance de cualquiera, fíjate que la mayoría de usuarios que hay por aquí son bastante novatos, no tienes más que ver las preguntas que hacen y lo confundidos que están, que todavía no entienden ni lo más básico de la programación, no digamos ya sobre delphi.

Y como todo libro muy técnico, nivel avanzado y temática muy "vertical", tiene un público muy "filtrado", más bien gente bastante experta. No es un libro para "las masas" aficionadas de delphi.

roman 13-11-2012 16:51:43

Estaba preparando una respuesta pero he decidido no hacerlo, porque argumentar el porqué un hilo de Marteens tiene más popularidad que un hilo de jachguate podría confundirse con restarle méritos a Juan Antonio y estoy muy lejos de eso.

Simplemente diré, que, más que defender un punto, da la impresión de que tienen cierto rencor por no haber visto aquí una recepción más abultada a la traducción del libro de Programación Paralela, un rencor, que ni siquiera sé si el propio Juan Antonio tiene.

// Saludos

egostar 13-11-2012 17:19:24

:) No hombre, cual rencor, era sólo para ejemplificar la diferencia entre algo gratuito y algo de pago, no se vayan por otro lado, además ésto lo hago a titulo personal, nada tiene que ver Juan.

Saludos

poliburro 13-11-2012 18:02:37

Cita:

Empezado por roman (Mensaje 449338)
Simplemente diré, que, más que defender un punto, da la impresión de que tienen cierto rencor por no haber visto aquí una recepción más abultada a la traducción del libro de Programación Paralela,
// Saludos

ah caray... ¿qué no se trataba el hilo de gratis vs paga? y precisamente el ejemplo demuestra la buena acogida que recibe lo gratis contra lo de paga? Sin ser precisamente ese factor la clave para una buena elección de producto? Creo que andas mirando moros dónde no hay...

Bueno, ajustandonos al debate. En lo personal jamás he tenido problema con usar software de paga o software open source, pues como muchas veces ha comentado ego, en tanto la solución se ajuste al problema y lo resuelva de manera óptima para mi no hay ningún problema...

A diferencia de Casimiro para mi tanto linux, como windows o mac son muy buenos sistemas operativos, cumplen las tareas para las que fueron hechos y lo hacen bien.

Decir que Windows 2008 es una porquería solo por que tiene un costo de licenciamiento y es´producto de microsoft es, a mi parecer errado.

Casimiro Notevi 13-11-2012 18:32:59

Vaya, hoy ha dimitido el máximo responsable de windows 8 y surface, no ha querido decir el motivo.

Al González 13-11-2012 18:58:45

Cita:

Empezado por poliburro (Mensaje 449348)
¿qué no se trataba el hilo de gratis vs paga?

Nop, este hilo se trataba de otra cosa, pero ¿ya qué? :p

Cita:

Empezado por Casimiro Notevi (Mensaje 449356)
Vaya, hoy ha dimitido el máximo responsable de windows 8 y surface, no ha querido decir el motivo.

No me extraña nada esa noticia...:rolleyes:
Por cierto, Casi: nuevo tema, nuevo hilo. ;)

Casimiro Notevi 13-11-2012 19:17:56

Cita:

Empezado por Al González (Mensaje 449362)
Por cierto, Casi: nuevo tema, nuevo hilo. ;)

Me dejé llevar por la emoción :D

roman 13-11-2012 19:32:00

Cita:

Empezado por poliburro (Mensaje 449348)
ah caray... ¿qué no se trataba el hilo de gratis vs paga? y precisamente el ejemplo demuestra la buena acogida que recibe lo gratis contra lo de paga? Sin ser precisamente ese factor la clave para una buena elección de producto? Creo que andas mirando moros dónde no hay....

Realmente ya no debería explayarme en esto, pero como aludes personalmente, te diré que tus argumentos no tienen pie ni cabeza. Podría darte muchas razones por las cuáles un hilo como el de Marteens tiene más popularidad, y nada tiene que ver con que sea de paga o gratuito.

Y no. El hilo, o mejor dicho, la discusión que comenzaste, no es gratuito vs paga, sino, como ahora vuelves a decir, a si la gratuidad es o no un factor para elegir un producto. Entonces, poner de ejemplo un producto gratuito que es de sobra reconocido por su calidad, difícilmente pude tomarse como un argumento fuerte, asi como tomar un ejemplo de un producto de pago dirigido a una comunidad muy reducida también sólo con una imaginación muy amplia podría tomarse como argumento fuerte.

// Saludos

poliburro 13-11-2012 20:03:00

Cita:

Empezado por roman (Mensaje 449365)
Realmente ya no debería explayarme en esto, pero como aludes personalmente,

:D amigo.. no hay nada personal en esto :D es un mero intercambio de ideas.. a lo mejor de repente algo álgido el asunto pero es natural en cualquier debate :D

Cita:

Empezado por roman (Mensaje 449365)
Y no. El hilo, o mejor dicho, la discusión que comenzaste, no es gratuito vs paga, sino, como ahora vuelves a decir, a si la gratuidad es o no un factor para elegir un producto.

es que con tantas cosas que si dijeron aquí había olvidado que el verdadero origen del debate era si Firebird soportaba o no múltiples recorsets de salida y que si no lo soportaba se añadiria a la larga lista de cosas que no soporta... Claro que eso no lo hace menos ni más al final su base de usuarios es fuerte y pujante.

Saludos...

RONPABLO 13-11-2012 21:08:22

Ya habrán pasado unos 4 o 5 años que use MS SQL server y me fue muy útil retornar varios cursores, el XML debó decir que nunca lo use, y la conexión con bases de datos del mismo o de distinto servidor era algo que probé mucho porque me gustaba, aun así no lo hice porque tuviera la necesidad, me gustaba mucho hacer un

Código SQL [-]
select campo1, campo2 from tabla

Sin necesitar que definir que campo1 era un entero y que campo2 era un varchar, aun así más de una ocación me hizo mucha falta el manejo que se da con el suspend de firebird que en MS SQL Server no se como se hace (las respuestas que recibí en el momento es que no tenía algo similar), para mis necesidades de procedimientos almacenados me parece más grabe que falte el supend que el poder retornar múltiples datasets, ya que con el mismo suspend puedo retornar datos mejor filtrados, no dudo que para otras necesidades sea mejor el tener múltiples cursores.

Respecto a lo gratis o lo de pago, pues todo depende, el hecho de descargar y usar Firebird ya se le está apoyando, y esto le produce ganancias, ahora pasar por caja no está de más, además de poner en el acerca de un "power by Firebird x.x" no está nada mal

poliburro 13-11-2012 21:25:07

Cita:

Empezado por RONPABLO (Mensaje 449371)
select campo1, campo2 from tabla


Sin necesitar que definir que campo1 era un entero y que campo2 era un varchar, aun así más de una ocación me hizo mucha falta el manejo que se da con el suspend de firebird que en MS SQL Server no se como se hace (las respuestas que recibí en el momento es que no tenía algo similar), para mis necesidades de procedimientos almacenados me parece más grabe que falte el supend que el poder retornar múltiples datasets, ya que con el mismo suspend puedo retornar datos mejor filtrados, no dudo que para otras necesidades sea mejor el tener múltiples cursores.

Respecto a lo gratis o lo de pago, pues todo depende, el hecho de descargar y usar Firebird ya se le está apoyando, y esto le produce ganancias, ahora pasar por caja no está de más, además de poner en el acerca de un "power by Firebird x.x" no está nada mal

Saludos amigo, qué es esa característica de suspend en firebird?

mightydragonlor 13-11-2012 21:29:53

Dentro de un procedimiento almacenado e incluso en un EXECUTE BLOCK puedes tener varios SELECT, pero el select que retorna los datos es el que tiene el SUSPEND, creo que lo mismo aplica en variables de salida, que a la final es lo mismo.

Saludos.

poliburro 13-11-2012 21:38:34

Cita:

Empezado por mightydragonlor (Mensaje 449374)
Dentro de un procedimiento almacenado e incluso en un EXECUTE BLOCK puedes tener varios SELECT, pero el select que retorna los datos es el que tiene el SUSPEND, creo que lo mismo aplica en variables de salida, que a la final es lo mismo.

Saludos.


Entonces entiendo que el suspend identifica de manera explicita que select quieres devolver... lo cual no debería ser necesario peus el mismo lenguaje PLSQL o TSQL establece la manera en que un sp retorna un recordset...

supongo que debe tener algún uso adicional en firebird... o es solo ese? identificar que selecte se devolvera?

RONPABLO 13-11-2012 22:19:32

Cita:

Empezado por poliburro (Mensaje 449376)
Entonces entiendo que el suspend identifica de manera explicita que select quieres devolver... lo cual no debería ser necesario peus el mismo lenguaje PLSQL o TSQL establece la manera en que un sp retorna un recordset...

supongo que debe tener algún uso adicional en firebird... o es solo ese? identificar que selecte se devolvera?

El suspend se usa para procedimientos almacenados que retornan un Dataset con varias columnas y varios registros, como tal es la orden de mandar la información en el momento que usted quiera, así pues uno hace el
Código SQL [-]
select campo1, campo2 from  tabla
Y no por eso se va a retornar los datos de campo1 y campo2 como resultados de un cursor, en Firebird tengo que declarar que parametros van a salir en el cursor e ir por medio de un comando llamado "for select" recorriendo el dataset que necesito consultar, ahora yo con la información que me retorna Campo1, Campo2 en el "for select " no necesariamente es la que quiero mostrar, con ella por ejemplo necesito hacer varias operaciones antes de mostrarla y al final puedo entregar un recordSet construido con información muy diferente a la que viene en la consulta original y es ahí cuando tengo el resultado que igual en una o varias variables de resultado y doy la orden de suspend y me sale un recordset con campo3 y campo4 que eran los resultados obtenidos por campo1 y campo2,

también puedo fabricar un recordset de algo que no es una tabla, ejemplo

Código SQL [-]
SET TERM ^^ ;
CREATE PROCEDURE SP_CADENA_A_RECORD (
  AINPUT VarChar(8192))
 returns (
  VALOR Integer)
AS
declare variable LASTPOS integer;
declare variable NEXTPOS integer;
begin
  AINPUT = :AINPUT || ',';
  LASTPOS = 1;
  NEXTPOS = position(',', :AINPUT, LASTPOS);
  while (:NEXTPOS > 1) do
  begin
    valor = cast(substring(:AINPUT from :LASTPOS for :NEXTPOS - :LASTPOS) as integer);
    LASTPOS = :NEXTPOS + 1;
    NEXTPOS = position(',', :AINPUT, LASTPOS);   
    suspend;
  end
  
end ^^
SET TERM ; ^^

Con el procedimiento almacenado anrterio envio como paramentro de entrada una seríe de números separados por comas, por decir "1,4,6,7,12,22", internamente hago una operación de cadenas y retorno como recortset los números en valor entero, y con ellos puedo hacer inner joins on validaciones tipo exists que me funcionan más rápido que validaciones "where campo in ('1,4,6,7,12,22').


la verdad siento que no soy muy claro al tratar de explicarme, pero eso es una idea de lo que hace el suspend

poliburro 13-11-2012 22:48:31

Cita:

Empezado por RONPABLO (Mensaje 449385)
El suspend se usa para procedimientos almacenados que retornan un Dataset con varias columnas y varios registros, como tal es la orden de mandar la información en el momento que usted quiera, así pues uno hace el

Código SQL [-]select campo1, campo2 from tabla


Y no por eso se va a retornar los datos de campo1 y campo2 como resultados de un cursor, en Firebird tengo que declarar que parametros van a salir en el cursor e ir por medio de un comando llamado "for select"


Pero eso no es agregar código adicional? Mysql y MsSql por ejemplo tu haces un

Código SQL [-]
 
   Select Campo1,Campo2,..,CampoN
     from tabla 
    where  criterio = ValParam1 or
              criterio = valParam2

y eso obtienes al ejecutr el SP con lo que no requieres de un suspend o fetch etc...

En oracle y Db2 al contrario debes delcarar como un cursor el recordset que deseas dar como salida del SP pero al final con un mero Open CurName obtienes la salida del sp...

Entonces.. déjame ver si entiendo bien, En Firebird debes hacer todo ese código para poder dar salida a un simple resultset en un SP? :eek: :eek:


La franja horaria es GMT +2. Ahora son las 09:06:45.

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