![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
![]() // Saludos |
|
#2
|
||||
|
||||
|
Cita:
Amigo me avoco a tu duda planteada aquí: Cita:
filasdatoscliente, datosencabezadoventa, partidadeventa1 filasdatoscliente, datosencabezadoventa, partidadeventa2 filasdatoscliente, datosencabezadoventa, partidadeventa3 ........... filasdatoscliente, datosencabezadoventa, partidadeventaN como puedes observar, hacer uso de joins para devolverver toda esa información agrupada es sumamente infeciente pues vas a devolver un recordset con información duplicada y que te exigirá seprarla en tu código para mostrarla en los diferentes repositorios. Lo que hace la mayoria de programadores es primero consultar el maestro de ventas, luego el detalle de venta y para terminar los datos del cliente. Es la manera tradicional y por cada llamada debes estar haciedno consultas separadas o llamando a los procedimientos almacenados correspondientes. Eso está muy bien, pero si buscas optimizar las llamadas a la base de datos y aprovechar una sola conexión, pues, podrías optar por devolver los tres bloques separados y de esa manera te ahorras todo el trabajo de estar invocando consultas separadas. esta es una técnica como tantras otras. Podrías decirme que puedes deolverlo en un gran bloque xml, o podrías decirme que prefieres hacer tres consultas a la base de datos o podrías decirme que devolverás todo en un solo gran resultset. Eso queda ya en ti como programador y tus criterios técnicos.
__________________
Conoce mi blog http://www.edgartec.com Última edición por poliburro fecha: 09-11-2012 a las 17:38:56. |
|
#3
|
||||
|
||||
|
Cita:
Lo único que ha ocurrido en todo esto es que, sin saberlo, añadiste a tu comentario (sin venir a cuento): "algo más por agregar a la larga lista de cosas que no soporta firebird". Porque de momento nadie ha podido decir si lo implementa o no. Que puede ser que no lo implemente... seguramente es así. ¡¡¡Tantas cosas hay que hacen unos y que no hacen otros!!!
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
||||
|
||||
|
Cita:
Cita:
Jamás me mostré como un experto en firebird sin saber del tema. No conozco firebird tan a profundidad como para poder declarar que no soporta algo.
__________________
Conoce mi blog http://www.edgartec.com |
|
#5
|
||||
|
||||
|
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
||||
|
||||
|
pues si.. solo que en este hilo se delimitó desde el inicio claramente a Firebird... o me equivoco?
__________________
Conoce mi blog http://www.edgartec.com |
|
#7
|
||||
|
||||
|
En eso te doy la razón.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#8
|
||||
|
||||
|
O sea, ¿es curioso sólo cuando la idea es buena?
![]() ¿O te refieres a sí, la idea es buena, es curioso...? ![]() // Saludos |
|
#9
|
||||
|
||||
|
Cita:
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#10
|
||||
|
||||
|
Cita:
![]() No dudo que pueda tener sus ventajas. Y no lo dudo para empezar porque ni siquiera tenía conocimiento de esta característica hasta hace unas horas. Pero, sin ánimo de demeritar, no me parece que tu ejemplo sea clarificador. Para empezar, lo de los datos repetidos, pues todo depende de no hacer un select .* y escoger los campos adecuados de cada tabla. Normalmente, lo que hacemos es un join para mostrar los datos más relevantes en una rejilla, y entonces hacer la o las consultas extras sólo para los registros que realmente nos interese. Es decir, no significa que vamos a hacer las consultas extra por cada uno de los registros de la consulta principal. Entonces, a lo que me refiero, es que no veo, al menos en este caso específico, una clara ventaja. ------- Por otra parte, un poco al margen; mencionas que además de SQL Server, hay oros motores que soportan la característica. En el caso particular de MySQL, yo ni siquiera lo mencionaría. Las pruebas que he hecho con procedimientos almacenados (ver. 5.1.x) dejan mucho que desear, dando resultados extremadamente lentos. // Saludos |
|
#11
|
||||
|
||||
|
Cita:
Cita:
Yo tengo un sistema con php y mysql con tablas de más de dos millones de registros y tamaños del órden de gigas de información. y me responde extremadamente rápido con procedimientos almaceandos con una carga de más de 50 usuarios simultáneos escribiendo y consultando.
__________________
Conoce mi blog http://www.edgartec.com |
|
#12
|
||||
|
||||
|
Tendría que revisarlos. Porque ciertamente no soy ducho en eso. Se trataba de uns procedimientos que se limitaban a hacer sencillas operaciones de stringsy numéricas para, por ejemplo, calcular el dígito verificador de la homoclave de un RFC. Y era muy lento. Es decir, no había realmente consultas a la base, de manera que pienso que no entraban en juego cuestiones de diseño.
// Saludos |
|
#13
|
||||
|
||||
|
Y con DBExpress?
Bueno al margen de lo demás.
Si utilizamos DBExpress + DataSnap estas soluciones de traer conjuntos de datos con sus "hijos", y los hijos de sus hijos, y los hijos de los hijos de sus hijos, etc. se pueden implementar muy facil. Lo mejor es que no importa si el motor lo soporta o no. Mas o menos ventajas? no se. Saludos. |
|
#14
|
||||
|
||||
|
Cita:
Personalmente uso más ADO que DbExpress así que si te animas a compartir como se hace con esos componentes sería muy interesante y útil para la biblioteca de técnicas. Saludox
__________________
Conoce mi blog http://www.edgartec.com |
|
#15
|
||||
|
||||
|
Con DBExpress pero sin DataSnap
Así de rapidito hice un pequeñito ejemplo con DBExpress pero sin dataSnap para ilustrar lo que me pasó por la mente cuando vi el tema.
Para los que quieran profundizar en el tema pueden ver: La cara oculta de delphi 6: Paginas 705-707 para empezar. Si esto no pega con el tema de conversación, ehhh. Bueno, a alguien le servirá. Saludos. |
|
#16
|
||||
|
||||
|
Román, poliburro ya había aclarado el asunto de los datos repetidos.
![]() Cita:
Edgar, aunque pudiera, eliminar la referencia no tendría ningún sentido. Además no cambia mi deseo de que visiten tu bitácora, yo encuentro valiosa la información que ahí compartes. ![]() En cuanto a la sorprendente acusación de censura, pues ni qué decir. ![]() |
|
#17
|
||||
|
||||
|
Sí, tienes razón. Y no culpo a poliburro, sino a mi mismo
Por alguna razón, no fue sino hasta que leí el comentario de RONPABLO que cai en la cuenta.// Saludos |
|
#18
|
||||
|
||||
|
Amigo, esa fué precisamente mi percepción a lo que mencionaste sobre mi actitud con relación a firebird. De ahí que te dijera que si lo considerabas a bien podrías eliminar la referencia a mi artículo. Si estoy errado en la percepción retiro lo dicho.
__________________
Conoce mi blog http://www.edgartec.com |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|