Delphi - List index out of bounds-¡Ayuda!

 
Vista:

List index out of bounds-¡Ayuda!

Publicado por David (4 intervenciones) el 27/04/2010 18:28:04
Tengo un problema con la siguiente sentencia de sql de interbase, a ver si alguien me puede ayudar.

d.close;
d.CommandText:= 'select idproducto, coste, precio1, (precio1/coste-1)*100 margen from productos';
d.open;

Me da el siguiente error

list index out of bounds(3)

No se a que se debe este error, he estado probando, y parece que es la division de precio1/coste lo que me da este error.

Espero que alguien me pueda ayudar.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:List index out of bounds-¡Ayuda!

Publicado por E.T. (1244 intervenciones) el 27/04/2010 18:47:53
Es, de hecho, donde está el error, intenta esto

d.close;
d.CommandText:= 'select idproducto, coste, precio1, ((precio1/coste-1)*100) as margen from productos';
d.open;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:List index out of bounds-¡Ayuda!

Publicado por David (4 intervenciones) el 27/04/2010 22:03:45
Lo he intentado pero sigue saliendo el mismo error. No se a que se debe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:List index out of bounds-¡Ayuda!

Publicado por E.T. (1244 intervenciones) el 27/04/2010 23:55:33
Haber, dime entonces

d que tipo de componente es?
en cual linea es en que linea te muestra el error, y si pudieras poner un poco mas del codigo que estás usando abajo del que ya pusiste
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:List index out of bounds-¡Ayuda!

Publicado por martin (43 intervenciones) el 28/04/2010 00:52:22
proba con ((precio1/(coste-1))*100) AS 'Margen'
Primero tiene que resolver la suma de opuestos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:List index out of bounds-¡Ayuda!

Publicado por martin (43 intervenciones) el 28/04/2010 00:52:23
proba con ((precio1/(coste-1))*100) AS 'Margen'
Primero tiene que resolver la suma de opuestos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:List index out of bounds-¡Ayuda!

Publicado por David (4 intervenciones) el 28/04/2010 11:59:09
Pero eso cambiaria el significado/resultado de la operacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:List index out of bounds-¡Ayuda!

Publicado por martin (43 intervenciones) el 29/04/2010 00:10:38
Yo entiendo que le queres restar 1 a coste, ahora si queres restarle 1 el cociente es

(( (precio/coste)-1)*100)

o sea no esta bien expresado lo que pusiste originalmente por asi no se sabe q operacion va primero(cual es la mas interna)
es com si pusiseras (Precio / coste * valor1 + valor2 / 2000 )

vos con lo parentesis tenes que especificar cual es la primera operacion que tiene que hacer y cual es la segunda etc, es algebra.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:List index out of bounds-¡Ayuda!

Publicado por David (4 intervenciones) el 29/04/2010 02:51:38
La expresion que puse es totalmente valida algebraicamente hablando ya que las multiplicaciones y divisiones siempre se calcula antes que las sumas y restas y no hay necesidad de poner parentesis.
El tema es que el cociente entre dos campos de la tabla da error en el commandtext, lo probe con el ibexpert y me funciona perfectamente, por eso me extraña dicho error.

A ver si alguien puede decirme a que es debido y hay algun metodo alternativo.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar