In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

OT: Unas guias para trabajar con SQL

Foro de Xailer profesional en español
Responder
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

OT: Unas guias para trabajar con SQL

Mensaje por joseluis »

Hola,
Para los conocedores y/o expertos de SQL. Pregunta de principiante.
Situación:
Pantalla de trabajo (tipo ficha) con barra de navegación (por ejemplo:
clientes).
Pregunta:
¿El dataset es de solo el registro actual? ¿De todos los registros?
Si es de solo el registro actual.... y quieren ir al siguiente, ¿como se
harí­a? ¿Y si quieren ir al último?
En fin... por ahí­ van mis dudillas...
Agradecido por la ayuda.
José Luis Capel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9445
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

OT: Unas guias para trabajar con SQL

Mensaje por ignacio »

José Luis,
El DataSet es una colección de registros, y al igual que ocurre con las
áreas de trabajo, estás posicionado en un registro-fila en concreto. Para
navegar por el dataset hay un montón de métodos que se parecen muy mucho a
los comandos clásicos de Clipper. Echa un vistazo a TDbfDataSet.
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:42e8f9ea$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> Para los conocedores y/o expertos de SQL. Pregunta de principiante.
>
> Situación:
> Pantalla de trabajo (tipo ficha) con barra de navegación (por ejemplo:
> clientes).
>
> Pregunta:
> ¿El dataset es de solo el registro actual? ¿De todos los registros?
>
> Si es de solo el registro actual.... y quieren ir al siguiente, ¿como se
> haría? ¿Y si quieren ir al último?
>
> En fin... por ahí van mis dudillas...
>
> Agradecido por la ayuda.
> José Luis Capel
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

OT: Unas guias para trabajar con SQL

Mensaje por joseluis »

Ignacio,
Gracias por tu respuesta.
Quizás no me he expresado bien....
La cuestión es más de planteamiento que técnico.
Si tengo un formulario de la ficha de clientes con una barra de
navegación (datasets y datacontrols).
¿Qué es mejor?
a. Traerme _todos_ los registros y moverme entre ellos con los métodos
que me provee los dataxxxxx (hay sitios donde hay 50000 o más fichas de
clientes)
b. Traerme _solo_ el que se visualiza y si piden ir al siguiente,
traerme el siguiente registro, y si piden ir al último, traerme el
último registro.
En fin estas son mis cuestiones.
Saludos y gracias,
José Luis Capel
Ignacio Ortiz escribió:
> José Luis,
>
> El DataSet es una colección de registros, y al igual que ocurre con las
> áreas de trabajo, estás posicionado en un registro-fila en concreto. Para
> navegar por el dataset hay un montón de métodos que se parecen muy mucho a
> los comandos clásicos de Clipper. Echa un vistazo a TDbfDataSet.
>
> Un saludo,
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:42e8f9ea$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>>Hola,
>>
>>Para los conocedores y/o expertos de SQL. Pregunta de principiante.
>>
>>Situación:
>>Pantalla de trabajo (tipo ficha) con barra de navegación (por ejemplo:
>>clientes).
>>
>>Pregunta:
>>¿El dataset es de solo el registro actual? ¿De todos los registros?
>>
>>Si es de solo el registro actual.... y quieren ir al siguiente, ¿como se
>>harí­a? ¿Y si quieren ir al último?
>>
>>En fin... por ahí­ van mis dudillas...
>>
>>Agradecido por la ayuda.
>>José Luis Capel
>
>
>
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

OT: Unas guias para trabajar con SQL

Mensaje por Francisco Sanchez »

Hombre asi como lo planteas con posibilidad de hasta 50,000 registros, como
puede ser una tabla de referencias de articulos, por ejemplo, evidentemente
te traera mas cuenta traerte uno a uno. Aunque si no recuerdo mal xailer
tiene carga asincrona - creo se llama asi - con lo que puedes estar
visualizando en una ficha uno y el resto seguir cargandose, pero bueno yo te
recomiento uno a uno en todo caso, pues no debemos olvidar que un sistema
SQL es un sistema de base de datos de CONSULTA, no lo olvidemos.
Un saludo
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9445
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

OT: Unas guias para trabajar con SQL

Mensaje por ignacio »

José Luis,
En una tabla de 50.000 registros me parece muy poco práctico poner los
típicos botones de anterior, siguiente, primero, último, y además hacerlo
sobre una tabla SQL es simplemente un pecado (que me perdonen los que no
piensen como yo).
Creo que el enfoque de ficha con los botones de navegación no es en absoluto
adecuado para manejar grandes tablas, e incluso para pequeñas tablas tampoco
le veo utilidad, decantandome más por una visualización tipo Browse para
ellas. En mi opinión la visión tipo ficha sólo es viale en entornos
ofimáticos y accesos directo a ficheros planos tipo DBF y además pequeños.
Como alguna vez ya he comentado el quiz del SQL es intentar que los cursores
que devuelve el servidor sean lo más pequeños posibles. De esta forma
consigermos que el servidor atienda a gran cantidad de puestos sin tener que
gastarnos una fortuna y además conseguiremos que funcione a través de WANs
sin muchos problemas.
Lo más aconsejable es establecer un pequeño QBE (Query by example) sobre los
campos de la tabla más obvios de ser utilizados en la búsqueda, y sólo
mostrar los campos más representativos, NO TODOS. Solamente se han de
mostrar todos cuando se desee ver o editar el registro completo.
Igualmente, a mi modo de ver, es un error cuando se quieren mostrar dos
tablas relacionadas, que según se navegue en una se muestren los registros
relacionados en la otra debido a que provoca un montón de consultas en el
servior innecesarias. En el caso de los DBF no suponía un problema pero con
motores SQL puede afectarle seriamente. En dichos casos el browse de la
tabla relacionada de mantenerse vacio hasta que se pulse un botón de
'Cargar' o equivalente.
En definitiva, hay que ahorrarle trabajo al servidor, y bytes a la conexión.
De esta forma conseguiremos que nuestra aplicación vuele y además funcione
perfectamente sobre redes lentas.
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:42e9dc25$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> Gracias por tu respuesta.
>
> Quizás no me he expresado bien....
>
> La cuestión es más de planteamiento que técnico.
>
> Si tengo un formulario de la ficha de clientes con una barra de navegación
> (datasets y datacontrols).
>
> ¿Qué es mejor?
>
> a. Traerme _todos_ los registros y moverme entre ellos con los métodos que
> me provee los dataxxxxx (hay sitios donde hay 50000 o más fichas de
> clientes)
>
> b. Traerme _solo_ el que se visualiza y si piden ir al siguiente, traerme
> el siguiente registro, y si piden ir al último, traerme el último
> registro.
>
>
> En fin estas son mis cuestiones.
>
> Saludos y gracias,
> José Luis Capel
>
> Ignacio Ortiz escribió:
>> José Luis,
>>
>> El DataSet es una colección de registros, y al igual que ocurre con las
>> áreas de trabajo, estás posicionado en un registro-fila en concreto.
>> Para navegar por el dataset hay un montón de métodos que se parecen muy
>> mucho a los comandos clásicos de Clipper. Echa un vistazo a TDbfDataSet.
>>
>> Un saludo,
>>
>> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
>> news:42e8f9ea$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>
>>>Hola,
>>>
>>>Para los conocedores y/o expertos de SQL. Pregunta de principiante.
>>>
>>>Situación:
>>>Pantalla de trabajo (tipo ficha) con barra de navegación (por ejemplo:
>>>clientes).
>>>
>>>Pregunta:
>>>¿El dataset es de solo el registro actual? ¿De todos los registros?
>>>
>>>Si es de solo el registro actual.... y quieren ir al siguiente, ¿como se
>>>haría? ¿Y si quieren ir al último?
>>>
>>>En fin... por ahí van mis dudillas...
>>>
>>>Agradecido por la ayuda.
>>>José Luis Capel
>>
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

OT: Unas guias para trabajar con SQL

Mensaje por jose.luis »

Ignacio,
Gracias por tu interés y por tu extensa explicación que, creo, he entendido.
Ahora la cuestión es más simple... pero más complicada... Crear un QBE
genérico (a nivel de clase) para especializarlo en cada mantenimiento
(por herencia y sobree-escritura de métodos). Además de añadirle el
componente 'ergonómico' (osea bonito y fácil de usar).
Repito las gracias y saludos,
José Luis Capel
Ignacio Ortiz escribió:
> José Luis,
>
> En una tabla de 50.000 registros me parece muy poco práctico poner los
> tí­picos botones de anterior, siguiente, primero, último, y además hacerlo
> sobre una tabla SQL es simplemente un pecado (que me perdonen los que no
> piensen como yo).
>
> Creo que el enfoque de ficha con los botones de navegación no es en absoluto
> adecuado para manejar grandes tablas, e incluso para pequeñas tablas tampoco
> le veo utilidad, decantandome más por una visualización tipo Browse para
> ellas. En mi opinión la visión tipo ficha sólo es viale en entornos
> ofimáticos y accesos directo a ficheros planos tipo DBF y además pequeños.
>
> Como alguna vez ya he comentado el quiz del SQL es intentar que los cursores
> que devuelve el servidor sean lo más pequeños posibles. De esta forma
> consigermos que el servidor atienda a gran cantidad de puestos sin tener que
> gastarnos una fortuna y además conseguiremos que funcione a través de WANs
> sin muchos problemas.
>
> Lo más aconsejable es establecer un pequeño QBE (Query by example) sobre los
> campos de la tabla más obvios de ser utilizados en la búsqueda, y sólo
> mostrar los campos más representativos, NO TODOS. Solamente se han de
> mostrar todos cuando se desee ver o editar el registro completo.
>
> Igualmente, a mi modo de ver, es un error cuando se quieren mostrar dos
> tablas relacionadas, que según se navegue en una se muestren los registros
> relacionados en la otra debido a que provoca un montón de consultas en el
> servior innecesarias. En el caso de los DBF no suponí­a un problema pero con
> motores SQL puede afectarle seriamente. En dichos casos el browse de la
> tabla relacionada de mantenerse vacio hasta que se pulse un botón de
> 'Cargar' o equivalente.
>
> En definitiva, hay que ahorrarle trabajo al servidor, y bytes a la conexión.
> De esta forma conseguiremos que nuestra aplicación vuele y además funcione
> perfectamente sobre redes lentas.
>
> Un saludo,
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:42e9dc25$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
>>Ignacio,
>>
>>Gracias por tu respuesta.
>>
>>Quizás no me he expresado bien....
>>
>>La cuestión es más de planteamiento que técnico.
>>
>>Si tengo un formulario de la ficha de clientes con una barra de navegación
>>(datasets y datacontrols).
>>
>>¿Qué es mejor?
>>
>>a. Traerme _todos_ los registros y moverme entre ellos con los métodos que
>>me provee los dataxxxxx (hay sitios donde hay 50000 o más fichas de
>>clientes)
>>
>>b. Traerme _solo_ el que se visualiza y si piden ir al siguiente, traerme
>>el siguiente registro, y si piden ir al último, traerme el último
>>registro.
>>
>>
>>En fin estas son mis cuestiones.
>>
>>Saludos y gracias,
>>José Luis Capel
>>
>>Ignacio Ortiz escribió:
>>
>>>José Luis,
>>>
>>>El DataSet es una colección de registros, y al igual que ocurre con las
>>>áreas de trabajo, estás posicionado en un registro-fila en concreto.
>>>Para navegar por el dataset hay un montón de métodos que se parecen muy
>>>mucho a los comandos clásicos de Clipper. Echa un vistazo a TDbfDataSet.
>>>
>>>Un saludo,
>>>
>>>"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
>>>news:42e8f9ea$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>
>>>
>>>>Hola,
>>>>
>>>>Para los conocedores y/o expertos de SQL. Pregunta de principiante.
>>>>
>>>>Situación:
>>>>Pantalla de trabajo (tipo ficha) con barra de navegación (por ejemplo:
>>>>clientes).
>>>>
>>>>Pregunta:
>>>>¿El dataset es de solo el registro actual? ¿De todos los registros?
>>>>
>>>>Si es de solo el registro actual.... y quieren ir al siguiente, ¿como se
>>>>harí­a? ¿Y si quieren ir al último?
>>>>
>>>>En fin... por ahí­ van mis dudillas...
>>>>
>>>>Agradecido por la ayuda.
>>>>José Luis Capel
>>>
>>>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9445
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

OT: Unas guias para trabajar con SQL

Mensaje por ignacio »

José Luis,
Eso es imposible a no ser que hagas un interface super probre, es decir,
cada tabla tendrá campos candidatos distintos para formar parte del QBE, y
no hay una regla fija. Algunos campos permitirán usar checkboxes, otros
númericos que sean tipos enumerados podrían ir en un TRadioMenu, un
TComboBox o un TListBox, etcetera.
Lo que pides es que como tener un formulario genérico para mantenimiento de
tablas, y se puede hacer, pero con un aspecto visual super pobre y a mi
gusto poco operativo incluso.
Quizas lo que más te preocupue sea la construcción de la sentencia SELECT
concatenando todos los campos del QBE que se han utilizado. Te aseguro que
es un juego de niños, cuando estés en esa parte te echo una mano.
En defenitiva pides lo imposible, lo siento :-(
Un saludo,
"José Luis Capel" <jose.luis@capelsoft.com> escribió en el mensaje
news:[email=42ed6f98@ozsrvnegro.ozlan.local...]42ed6f98@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> Gracias por tu interés y por tu extensa explicación que, creo, he
> entendido.
>
> Ahora la cuestión es más simple... pero más complicada... Crear un QBE
> genérico (a nivel de clase) para especializarlo en cada mantenimiento (por
> herencia y sobree-escritura de métodos). Además de añadirle el componente
> 'ergonómico' (osea bonito y fácil de usar).
>
>
> Repito las gracias y saludos,
> José Luis Capel
>
>
> Ignacio Ortiz escribió:
>> José Luis,
>>
>> En una tabla de 50.000 registros me parece muy poco práctico poner los
>> típicos botones de anterior, siguiente, primero, último, y además hacerlo
>> sobre una tabla SQL es simplemente un pecado (que me perdonen los que no
>> piensen como yo).
>>
>> Creo que el enfoque de ficha con los botones de navegación no es en
>> absoluto adecuado para manejar grandes tablas, e incluso para pequeñas
>> tablas tampoco le veo utilidad, decantandome más por una visualización
>> tipo Browse para ellas. En mi opinión la visión tipo ficha sólo es viale
>> en entornos ofimáticos y accesos directo a ficheros planos tipo DBF y
>> además pequeños.
>>
>> Como alguna vez ya he comentado el quiz del SQL es intentar que los
>> cursores que devuelve el servidor sean lo más pequeños posibles. De esta
>> forma consigermos que el servidor atienda a gran cantidad de puestos sin
>> tener que gastarnos una fortuna y además conseguiremos que funcione a
>> través de WANs sin muchos problemas.
>>
>> Lo más aconsejable es establecer un pequeño QBE (Query by example) sobre
>> los campos de la tabla más obvios de ser utilizados en la búsqueda, y
>> sólo mostrar los campos más representativos, NO TODOS. Solamente se han
>> de mostrar todos cuando se desee ver o editar el registro completo.
>>
>> Igualmente, a mi modo de ver, es un error cuando se quieren mostrar dos
>> tablas relacionadas, que según se navegue en una se muestren los
>> registros relacionados en la otra debido a que provoca un montón de
>> consultas en el servior innecesarias. En el caso de los DBF no suponía un
>> problema pero con motores SQL puede afectarle seriamente. En dichos casos
>> el browse de la tabla relacionada de mantenerse vacio hasta que se pulse
>> un botón de 'Cargar' o equivalente.
>>
>> En definitiva, hay que ahorrarle trabajo al servidor, y bytes a la
>> conexión. De esta forma conseguiremos que nuestra aplicación vuele y
>> además funcione perfectamente sobre redes lentas.
>>
>> Un saludo,
>>
>> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
>> news:42e9dc25$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>
>>>Ignacio,
>>>
>>>Gracias por tu respuesta.
>>>
>>>Quizás no me he expresado bien....
>>>
>>>La cuestión es más de planteamiento que técnico.
>>>
>>>Si tengo un formulario de la ficha de clientes con una barra de
>>>navegación (datasets y datacontrols).
>>>
>>>¿Qué es mejor?
>>>
>>>a. Traerme _todos_ los registros y moverme entre ellos con los métodos
>>>que me provee los dataxxxxx (hay sitios donde hay 50000 o más fichas de
>>>clientes)
>>>
>>>b. Traerme _solo_ el que se visualiza y si piden ir al siguiente, traerme
>>>el siguiente registro, y si piden ir al último, traerme el último
>>>registro.
>>>
>>>
>>>En fin estas son mis cuestiones.
>>>
>>>Saludos y gracias,
>>>José Luis Capel
>>>
>>>Ignacio Ortiz escribió:
>>>
>>>>José Luis,
>>>>
>>>>El DataSet es una colección de registros, y al igual que ocurre con las
>>>>áreas de trabajo, estás posicionado en un registro-fila en concreto.
>>>>Para navegar por el dataset hay un montón de métodos que se parecen muy
>>>>mucho a los comandos clásicos de Clipper. Echa un vistazo a TDbfDataSet.
>>>>
>>>>Un saludo,
>>>>
>>>>"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
>>>>news:42e8f9ea$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>>
>>>>
>>>>>Hola,
>>>>>
>>>>>Para los conocedores y/o expertos de SQL. Pregunta de principiante.
>>>>>
>>>>>Situación:
>>>>>Pantalla de trabajo (tipo ficha) con barra de navegación (por ejemplo:
>>>>>clientes).
>>>>>
>>>>>Pregunta:
>>>>>¿El dataset es de solo el registro actual? ¿De todos los registros?
>>>>>
>>>>>Si es de solo el registro actual.... y quieren ir al siguiente, ¿como
>>>>>se haría? ¿Y si quieren ir al último?
>>>>>
>>>>>En fin... por ahí van mis dudillas...
>>>>>
>>>>>Agradecido por la ayuda.
>>>>>José Luis Capel
>>>>
>>>>
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
joseluis
Mensajes: 642
Registrado: Jue Sep 08, 2005 12:54 pm

OT: Unas guias para trabajar con SQL

Mensaje por joseluis »

Ignacio,
>
> En defenitiva pides lo imposible, lo siento :-(
>
¡¡¡ No me digas que Xailer tiene imposibles !!! ;-)
Saludos,
José Luis Capel
Responder