Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 25
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Precisamente, amigo, es que me extraña muchísimo tu actitud, cualquier cosa que se comente es suficiente para que digas algo como: "pero firebird no tiene talcosa ", "pero firebird no tiene laotracosa ", etc.
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Precisamente, amigo, es que me extraña muchísimo tu actitud, cualquier cosa que se comente es suficiente para que digas algo como: "pero firebird no tiene talcosa ", "pero firebird no tiene laotracosa ", etc.
Pues creo que no me estas leyendo correctamente amigo mio... Acaso no ves el signo "?" al final de mis oraciones?

Es una pregunta la que hago. Acaso preguntar algo es un desvario?

Cita:
Empezado por poliburro
En Firebird debes hacer todo ese código para poder dar salida a un simple resultset en un SP?
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #2  
Antiguo 14-11-2012
cointec cointec is offline
Miembro
 
Registrado: jul 2004
Ubicación: Alicante-España
Posts: 76
Poder: 22
cointec Va por buen camino
Hola poliburro, lo que no entiendo es la frase "tienes que hacer todo ese código para devolver un resulset", cuando lo único que se tiene que escribir en el cuerpo del procedimiento almacenado si deseas devolverlo como resultset es "suspend"

El resto de código es común y la lógica será la misma que en cualquier motor.

Por otro lado, cuando te pedía el ejemplo no era en la llamada al procedimiento, sino en que escribieses el cuerpo del procedimiento en sqlserver, mysql, etc. para poder comprobar a lo que te referias con "todo ese código".

Imagino que en los motores que comentas, tendrás que declarar la estructura del resultset, con campos y tipos, que es equivalente a los parámetros de retorno del procedimiento almacenado. Dentro del procedimiento, tendrás que introducir los datos en variables e insertarlos en el resultset, para poder posteriormente devolverlos y por último devolver una referencia al resultset. Desde tu aplicación cliente tendrás una llamada al procedimiento almacenado y posteriormente otra llamada para obtener los datos insertados en el resultset.

En firebird, la sencillez es que la llamada al procedimiento ya es un resultset. Quizá con ejemplos sería mejor, por lo que sí nos pones algún ejemplo en otros motores, te podríamos mostrar su traducción a firebird y podríamos comparar cosas y no utilizar frases genéricas que creo no tienen sentido.
__________________
Un saludo, Jesus García
Responder Con Cita
  #3  
Antiguo 14-11-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
Cita:
Empezado por cointec Ver Mensaje
Hola poliburro, lo que no entiendo es la frase "tienes que hacer todo ese código para devolver un resulset", cuando lo único que se tiene que escribir en el cuerpo del procedimiento almacenado si deseas devolverlo como resultset es "suspend"

El resto de código es común y la lógica será la misma que en cualquier motor.

Por otro lado, cuando te pedía el ejemplo no era en la llamada al procedimiento, sino en que escribieses el cuerpo del procedimiento en sqlserver, mysql, etc. para poder comprobar a lo que te referias con "todo ese código".

Imagino que en los motores que comentas, tendrás que declarar la estructura del resultset, con campos y tipos, que es equivalente a los parámetros de retorno del procedimiento almacenado. Dentro del procedimiento, tendrás que introducir los datos en variables e insertarlos en el resultset, para poder posteriormente devolverlos y por último devolver una referencia al resultset. Desde tu aplicación cliente tendrás una llamada al procedimiento almacenado y posteriormente otra llamada para obtener los datos insertados en el resultset.

En firebird, la sencillez es que la llamada al procedimiento ya es un resultset. Quizá con ejemplos sería mejor, por lo que sí nos pones algún ejemplo en otros motores, te podríamos mostrar su traducción a firebird y podríamos comparar cosas y no utilizar frases genéricas que creo no tienen sentido.
En MsSql no necesitas declarar los resulsets de salida, sólo con que tengas varios Select * from tabla serán retornados sin problemas, para el caso de oracle se declaran cursores de salida, y los llenas con sus respectivos Select, cada uno deberá ser declarado para que pueda ser retornado, para el caso del actual firebird sólo devuelve un resulset con un select y un suspend, en Oracle es casi igual ya que sólo se devuelve por cada cursor que se llena, pero en MsSQL la cosa cambia, ya que no puedes usar los Select "libremente" hay que tener cuidado de no devolver lo que no se desea, pero para este caso se usa IF EXISTS(SELECT * FROM TABLA) o también puedes usar un SET @Variable = (SELECT * FROM TABLA) y con esto se evitar devilver lo que no se requiere.
PD: Si no estoy mal, para la versión 3 de Firebird que no está lejos de salir, se va a soportar la salida de varios cursores o resulsets en un procedimiento almacenado y en execute block, creo que también en funciones.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #4  
Antiguo 14-11-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Me parece que Casimiro ha detectado el tono con el que haces esas preguntas, Edgar, que no es precisamente el de alguien que espera recibir una respuesta didáctica y amable. Dices que no conoces lo suficientemente Firebird, pero recalcas las limitaciones que a tu juicio tiene. Respondes con efugios a algunas de las observaciones que de buena fe te hacen algunos de los compañeros en un intento por hacerte entrar en razón, para luego hacer comparaciones tendenciosas.

A los que hemos seguido este hilo ya nos quedó claro que guardas una especie de inquina hacia Firebird. Yo desconocía esto de ti (o mi memoria es mala), y de haberlo sabido antes no hubiera puesto en el mismo mensaje la pregunta inicial y la referencia a tu artículo. Ahora, en lo personal creo que las consultas de múltiples cursores es algo que Firebird debiera tener.

Algo ha de rescatarse de este mal devenido debate.

Saludos.
Responder Con Cita
  #5  
Antiguo 14-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Al González Ver Mensaje
Algo ha de rescatarse de este mal devenido debate.
A lo que yo he contribuido. Lo lamento.

--------

Aunque no es exactamente pra rescatar el debate, pues más bien es una duda, me gustaría, Al, leer tu opinión de porqué es buena esta característica de los múltiples result sets.

El ejemplo de poliburro no me aclara pues, a mi juicio, es algo que puede lograrse con enlaces entre tablas para recabar la información deseada. ¿Tendrías alguna situación en mente en la qué aplicar dicha técnica?

// Saludos
Responder Con Cita
  #6  
Antiguo 14-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 25
poliburro Va por buen camino
Cita:
Empezado por Al González Ver Mensaje

A los que hemos seguido este hilo ya nos quedó claro que guardas una especie de inquina hacia Firebird. Yo desconocía esto de ti (o mi memoria es mala), y de haberlo sabido antes no hubiera puesto en el mismo mensaje la pregunta inicial y la referencia a tu artículo. Ahora, en lo personal creo que las consultas de múltiples cursores es algo que Firebird debiera tener.
1.- Por allí anda un botón que se llama editar amigo.. puedes eliminar la referencia a mi artículo cuándo lo consideres correcto y de esa manera evitarte lamentaciones.

2- No tengo ningún tipo de "inquina" contra firebird. No aprecio a ese motor de base de datos y tampoco soy muy dado a elegirlo para mis proyectos. Pero si fuera contratado para trabajar en él lo haría sin ningún problema.

3- He visto aquí a muchos vosciferar contra Windows, .Net, Vb, Sql Server, la iglesia, el anticristo, etc etc y no ha habido ningún problema en ello. ¿Por qué se considera tan "mala" mi "inquina" contra Firebird?
__________________
Conoce mi blog http://www.edgartec.com

Última edición por poliburro fecha: 14-11-2012 a las 16:40:19.
Responder Con Cita
  #7  
Antiguo 14-11-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por poliburro
Nunca he logrado entender pro que les es tan dificil reconocer que firebird no es un buen motor por el contrario es un motor medianon que puede ser una buena alternativa para desarrollos pequeños pero comparado con el trabajo que hacen verdaderos motores de bases de datos su rendimiento es más bien mediocre.
Enlace
Incluso lo equiparas a paradox, access y dbase
Cita:
Empezado por poliburro
Adolecer de estas características no la hacen un mal motor, al contrario sigue siendo una excelente opción para nuestros desarrollos, tanto como lo es access o paradox o dbase. Pero aceptando que tiene limitantes no deberia compararse con los grandes. (Oracle, Postgress, MsSql,Db2, Informix)
Enlace

En fin, no vale la pena, está bien que creas lo que quieras creer, amigo poliburro, pero no nos cuentes "cosas" que no son, porque las palabras se las lleva el viento, pero lo escrito... escrito está.
Responder Con Cita
  #8  
Antiguo 14-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 25
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Enlace
Incluso lo equiparas a paradox, access y dbase

Enlace

En fin, no vale la pena, está bien que creas lo que quieras creer, amigo poliburro, pero no nos cuentes "cosas" que no son, porque las palabras se las lleva el viento, pero lo escrito... escrito está.
¿Cosas que no son? ¿Cuándo he dicho que me gusta? al contrario desde el inicio de este hilo dije "si no lo sporta se agrega a la larga lista de cosas que no soporta". y lo acabo de decir hace un momento. Firebird no me gusta Por que se toman tan a personal una crítica a firebird? por qué les cuesta tanto aceptar las críticas contra ese motor? deberían ser tan faciles de aceptar como las que hacen contra otras tecnologias....
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #9  
Antiguo 14-11-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 20
mightydragonlor Va por buen camino
Cita:
Empezado por poliburro Ver Mensaje
¿Cosas que no son? ¿Cuándo he dicho que me gusta? al contrario desde el inicio de este hilo dije "si no lo sporta se agrega a la larga lista de cosas que no soporta". y lo acabo de decir hace un momento. Firebird no me gusta Por que se toman tan a personal una crítica a firebird? por qué les cuesta tanto aceptar las críticas contra ese motor? deberían ser tan faciles de aceptar como las que hacen contra otras tecnologias....
Creo que mas que las críticas que haces al Firebird es la forma que tomas todo, como las preguntas que hiciste repecto a los procedimientos, sacando conclusiones que no son lógicas, en forma de pregunta reitero, algo como entonces no tiene plan de ejecución? y cosas por el estilo.

Si bien Firebird carece de ciertas caracteristicas, como este caso, multiples resulsets, no quiere decir que estos no se puedan solventar de diferentes formas, varios procedimientos almacenados para este caso, soporte XML, hay varias UDF´s que hacen esto, lo mismo para búsqueda de texto completo, que de hecho no son soportadas directamente en la Api de MySQL, si no que son plugins adicionales que aunque ya vengan con la instalación, vienen a ser lo mismo que las UDF's de Firebird, y así varias características que pueden ser solventadas facilmente por programación, es mas sé de varias funciones que añaden soporte XML a Firebird, sin pasar por una UDF.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #10  
Antiguo 14-11-2012
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 23
RONPABLO Va por buen camino
Cita:
Empezado por poliburro Ver Mensaje
Por que se toman tan a personal una crítica a firebird? por qué les cuesta tanto aceptar las críticas contra ese motor? deberían ser tan faciles de aceptar como las que hacen contra otras tecnologias....
Tal vez por la misma razón que tu te empeñas en decir que SQL Server puede hacer de otra forma lo que firibird hace, osea le quitas importancia a las ventajas de firebird sobre SQL Server porque lo puedes hacer de otra forma, lo mismo me pasa a mi, le quito importancia a que no pueda tener varios ResulSets en firebird porque lo puedo hacer de otra forma y generalmente realizando la misma cantidad de trabajo, a veces un poco más a veces un poco menos.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #11  
Antiguo 14-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 25
poliburro Va por buen camino
Cita:
Empezado por RONPABLO Ver Mensaje
Tal vez por la misma razón que tu te empeñas en decir que SQL Server puede hacer de otra forma lo
Pero no solo he mencionado a SQL server, también he mencionado a mysql, postgresql, oracle y db2 que son los motores de bases de datos que utilizo.....

Insisto... como lo mencioné en un hilo que cita casimiro.

Cita:

Adolecer de estas características no la hacen un mal motor, al contrario sigue siendo una excelente opción para nuestros desarrollos, tanto como lo es access o paradox o dbase. Pero aceptando que tiene limitantes no deberia compararse con los grandes. (Oracle, Postgress, MsSql,Db2, Informix)


Firebird no es malo. al contrario es una excelente opción como lo pueden ser otros motores como access o paradox o dbase o mysql, pero eso de equipararlo a cualquiera de los grandes me parece una necedad.

Claro ese es mi punto de vista... no es la verdad absoluta. Como ha querido desde un inicio hacerlo ver aquí Casimiro tergiversando mis comentarios... o en el colmo de la censura Al gonzalez acusandome de tener una "actitud inquina" contra Firebird. como si para una crítica fuera necesario sentir simpatia por el objeto de las críticas...

__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #12  
Antiguo 14-11-2012
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 23
RONPABLO Va por buen camino
Cita:
Empezado por poliburro Ver Mensaje
3- He visto aquí a muchos vosciferar contra .Net, Vb, Sql Server, la iglesia, el anticristo, etc etc y no ha habido ningún problema en ello. ¿Por qué se considera tan "mala" mi "inquina" contra Firebird?

Para mi es normal, todos en la vida tenemos cosas que no nos gustan, aun así Firebird hace cosas que SQL Server no hace, como hay cosas que Firebird no hace, ¿es normal no?.


Cita:
Empezado por roman
El ejemplo de poliburro no me aclara pues, a mi juicio, es algo que puede lograrse con enlaces entre tablas para recabar la información deseada. ¿Tendrías alguna situación en mente en la qué aplicar dicha técnica?
Imagina que en un llamado a un procedimiento se trae 3 DataSets, uno es encuestas, el segundo es preguntas de la encuesta y el tercer DataSet trae las respuestas dadas a cada pregunta, se trae únicamente los datos que se van a usar para no sobrecargar la conexión a red, estos DataSet en .Net se pueden tomar como tablas en memoria y hacer una especie de maestro detalle donde al seleccionar en un grid una de las encuestas me muestre en otro las preguntas ofrecidas y el total de respuestas por preguntas en otro grid,
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #13  
Antiguo 14-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por RONPABLO Ver Mensaje
P
Imagina que en un llamado a un procedimiento se trae 3 DataSets, uno es encuestas, el segundo es preguntas de la encuesta y el tercer DataSet trae las respuestas dadas a cada pregunta, se trae únicamente los datos que se van a usar para no sobrecargar la conexión a red, estos DataSet en .Net se pueden tomar como tablas en memoria y hacer una especie de maestro detalle donde al seleccionar en un grid una de las encuestas me muestre en otro las preguntas ofrecidas y el total de respuestas por preguntas en otro grid,
Mmm. Creo que ahora lo veo más claro. Usar joins ocasionaría el viaje de datos repetidos del servidor al cliente.

Gracias

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ayuda: "Record not found or changed by another user" alquimista_gdl Conexión con bases de datos 14 21-03-2009 20:09:21
Cursor "intermitente" al realizar consultas. mlara Firebird e Interbase 1 24-05-2008 02:51:26
Error Invalid blob handle in record buffer??? sin usar "Blobs to cache" varuhs Conexión con bases de datos 4 22-01-2007 21:19:53
¿Como Guardar un "RECORD" en un campo BLOB? sitrico Conexión con bases de datos 5 29-06-2004 17:32:01
"no current record for fetch operation" con procedimiento almacenado usado en Select Al González Firebird e Interbase 1 17-03-2004 21:13:17


La franja horaria es GMT +2. Ahora son las 13:31:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi