Problema de metodologia

10/11/2004 - 21:22 por AOG | Informe spam
Hola, tengo un problema que no se me ocurre nada para solucionarlo y es el
siguiente:
Tengo una tabla de artículos con la estructura siguiente:
Código, Descripción, Marca, PVP….
La clave es Código
Índices Descripción y Marca
Tengo que hacer un sistema de presentación en una reja de todos los
artículos en la reja, la presentación se hará ordenado por varias formas:
La primera forma y lo más común es ordenado por código, luego el usuario
puede ordenar por descripción o Marca según le convenga.
La forma de mostrar los artículos (registros) será de la siguiente manera:
En la reja en un principio se mostrara los 11 primeros registros que son las
filas que se ven en la reja, es decir, la reja siempre va ha contener 11
filas y siempre visibles, se mostraran en el orden por el campo que ha
elegido el usuario. ¿Por qué solo 11 registro? solo mostrare 11 registros
porque la tabla va ha contener varios miles de registros, y cargar la reja
con todos sería una locura.
Cuando el usuario se desplace con la fecha del cursor hacia abajo en la reja
se ira seleccionando la fila de la reja hasta llegar a la 11 cuando intenta
sobre pasar la 11 yo le muestro el siguiente registro de la tabla, quito la
1º fila de la reja inserto una fila al final y muestro el siguiente registro,
es decir, cojo el valor de la columna código de la ultima fila que es
(000011) y hago una consulta (Select Codigo, Descripción, Marca, PVP from
articulos where Codigo > ‘000011’ LIMIT 1 (es para MySQL) ), así obtengo un
registro (000012) que es el siguiente registro que corresponde al código
000011 porque se ha mostrado en la reja ordenado por código y esto funciona
correctamente el usuario se va desplazando hacia abajo y el efecto va bien,
el usuario ve que la primera fila desaparece y aparece el la ultima el nuevo
registro.
El problema está cuando el usuario quiere ver ordenado por marca por
ejemplo, por código no hay problema porque es único y la SQL anterior vale,
cuando se quiere ver ordenado por marca (LG, PHILIS, SONY) ya no vale la SQL
anterior porque hay articulos que se repiten con la misma marca ejemplo:
LG, 00002, TV 21
LG, 00102, TV 24
LG, 10021, FRIGORIFICO
PHILIS, 00001, DVD F1
PHILIS, 00011, DVD F23
PHILIS, 00101, TV K21
PHILIS, 00221, TV K24
SONY, 00001, LECTOR CD
SONY, 10001, PANTALLA FR45
SONY, 00002, PANTALLA F55
Como os muestro están ordenados primero por la marca y luego por código. Ha
usar esta SQL:
Select Codigo, Descripción, Marca, PVP from articulos where MARCA > ‘LG’
order by MARCA, CODIGO LIMIT 1
El siguiente registro es PHILIS no LG (se supone que hay mas de 11 articulos
de la marca LG de hecho puede haber cientos)
Esta SQL tampoco vale
Select Codigo, Descripción, Marca, PVP from articulos where MARCA >= ‘LG’
and CODIGO >’10021’ order by MARCA, CODIGO LIMIT 1, suponiendo que en la fila
11 está el articulo con codigo ‘10021’ de la marca LG
Aunque muestre algunos registro seguido de la misma marca pero hay saltos de
registro porque coge el orden del campo codigo

Que puedo hace ya que el usuario necesita ver los registro de la forma que
os he mostrado anteriormente.
Tengo una aplicación que estaba hecha en VB5 y con MDB de access, esto lo
hacia con recordset de tipo Table y utilizando índices y los marcadores iba
estupendamente en el caso de ordenar por marca utilizo un índice por marca,
codigo iba moviendo hacia delante (rsArt.MoveNext) y todo biem, pero como
aquí no se puede tener recordset sino dataset y rellenar un dataset con los
miles registro sería una operación no aceptable.
Que me aconsejáis.

Un saludo
AOG.

Preguntas similare

Leer las respuestas

#6 David Sans
11/11/2004 - 10:53 | Informe spam
Hola

Si como índices pones Descripcion+Codigo y Marca+Codigo

Entonces no tienes que tener problema, no?

Creo que no es la solución, pero así te puede ir.

Saludos
David S.

"AOG" escribió en el mensaje news:
Hola, tengo un problema que no se me ocurre nada para solucionarlo y es el
siguiente:
Tengo una tabla de artículos con la estructura siguiente:
Código, Descripción, Marca, PVP..
La clave es Código
Índices Descripción y Marca
Tengo que hacer un sistema de presentación en una reja de todos los
artículos en la reja, la presentación se hará ordenado por varias formas:
La primera forma y lo más común es ordenado por código, luego el usuario
puede ordenar por descripción o Marca según le convenga.
La forma de mostrar los artículos (registros) será de la siguiente manera:
En la reja en un principio se mostrara los 11 primeros registros que son las
filas que se ven en la reja, es decir, la reja siempre va ha contener 11
filas y siempre visibles, se mostraran en el orden por el campo que ha
elegido el usuario. ¿Por qué solo 11 registro? solo mostrare 11 registros
porque la tabla va ha contener varios miles de registros, y cargar la reja
con todos sería una locura.
Cuando el usuario se desplace con la fecha del cursor hacia abajo en la reja
se ira seleccionando la fila de la reja hasta llegar a la 11 cuando intenta
Respuesta Responder a este mensaje
#7 AOG
11/11/2004 - 19:24 | Informe spam
Hola David, tu respuesta es correcta, pero funciona en base de datos de
access y supongo que también en SQL server pero eso lo he intentado en MySQL
y no me funciona, ya había probado de la manera que tu me haz dicho
(Descripcion + codigo > 'LG' + '00021') y también así (Descripcion & codigo >
'LG' & '00021') pero en MySql ha concadenar Descripcion + codigo me devuelve
0 o 1, a no ser que en MySql hay una forma de hacer esto.

Te agradezco tu colaboración, si se te ocurre otra cosa, por favor dímela,
un saludo
AOG

"David Sans" wrote:

Hola

Si como índices pones Descripcion+Codigo y Marca+Codigo

Entonces no tienes que tener problema, no?

Creo que no es la solución, pero así te puede ir.

Saludos
David S.

"AOG" escribió en el mensaje news:
> Hola, tengo un problema que no se me ocurre nada para solucionarlo y es el
> siguiente:
> Tengo una tabla de artículos con la estructura siguiente:
> Código, Descripción, Marca, PVP..
> La clave es Código
> Índices Descripción y Marca
> Tengo que hacer un sistema de presentación en una reja de todos los
> artículos en la reja, la presentación se hará ordenado por varias formas:
> La primera forma y lo más común es ordenado por código, luego el usuario
> puede ordenar por descripción o Marca según le convenga.
> La forma de mostrar los artículos (registros) será de la siguiente manera:
> En la reja en un principio se mostrara los 11 primeros registros que son las
> filas que se ven en la reja, es decir, la reja siempre va ha contener 11
> filas y siempre visibles, se mostraran en el orden por el campo que ha
> elegido el usuario. ¿Por qué solo 11 registro? solo mostrare 11 registros
> porque la tabla va ha contener varios miles de registros, y cargar la reja
> con todos sería una locura.
> Cuando el usuario se desplace con la fecha del cursor hacia abajo en la reja
> se ira seleccionando la fila de la reja hasta llegar a la 11 cuando intenta



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida