PDA

Ver la Versión Completa : como utilizar setoff record as con delphi !!!


pame
25-07-2013, 23:58:57
buenas tardes necesito q me ayuden a resolver esta funcion, me dijeron q puedo utilizar setof records as, pero no se como emplearlo, yo ingreso por teclado las fechas, fecha inicio(fi) fecha fin (ff), las cuales utilizo para para hacer cálculos. Les envió mi función.

lo intente hacer en delphi utilizando el TADOquery y el error que me aparece es: error de sintaxis cerca de ff

SELECT DISTINCT a.cod_producto,p.nombre,sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ) as demanda,

(150*sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ))/(p.precio_unid * 0.13) as Q ,

(sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff-fi) ))/(150*sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ))/(p.precio_unid * 0.13) as N,

(150*sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ))/(p.precio_unid * 0.13)/(sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) )) as T,

Stddev(a.cantidad)* sqrt(4) as Desv ,

(Stddev(a.cantidad)* sqrt(4))*1.28 as IS,

sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) )*4*((Stddev(a.cantidad)* sqrt(4))*1.28) as R

FROM detalle_venta a, factura_vent fv,producto p

WHERE(( p.cod_producto=a.cod_producto) and (a.cod_fact_vent=fv.cod_fact_vent) and (fv.fecha between :fi and :ff) )

group by a.cod_producto,p.nombre,p.precio_unid


pero comente al principio quiero emplear esta este query dentro la funcion de tipo setof records as, como puedo hacerlo???
gracias

PD: en caso de generar esta funcion setof records as como puedo recuperar su valor en delphi

ecfisa
26-07-2013, 04:18:06
Hola pame, bienvenido a Club Delphi :)

No entiendo a que te referis cuando mencionas "set of record" o "dentro la funcion de tipo setof records as".

Set es un conjunto de valores ordinales del mismo tipo, cuyo uso podes apreciar en estos enlaces:

Understanding Delphi SET Type (http://delphi.about.com/od/beginners/a/delphi_set_type.htm)
Enumerations, SubRanges and Sets (http://www.delphibasics.co.uk/Article.asp?Name=Sets)
Set (http://www.delphibasics.co.uk/RTL.asp?Name=Set)


¿ Podrías mostrar el código que realizaste con el TADOquery y que te provoca el error ?

Saludos :)

pame
27-07-2013, 01:01:04
bueno este es el codigo que utilizo y el error dice: error de sintaxis cerca de ff
SELECT DISTINCT a.cod_producto,p.nombre,sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ) as demanda,

(150*sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ))/(p.precio_unid * 0.13) as Q ,

(sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff-fi) ))/(150*sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ))/(p.precio_unid * 0.13) as N,

(150*sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) ))/(p.precio_unid * 0.13)/(sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) )) as T,

Stddev(a.cantidad)* sqrt(4) as Desv ,

(Stddev(a.cantidad)* sqrt(4))*1.28 as IS,

sum(a.cantidad)/ (date_part('DAY', TIMESTAMP ff- fi) )*4*((Stddev(a.cantidad)* sqrt(4))*1.28) as R

FROM detalle_venta a, factura_vent fv,producto p

WHERE(( p.cod_producto=a.cod_producto) and (a.cod_fact_vent=fv.cod_fact_vent) and (fv.fecha between :fi and :ff) )

group by a.cod_producto,p.nombre,p.precio_unid

AzidRain
28-07-2013, 01:48:55
Lo que está mal es la construcción del query, el mensaje que dices es bastante explícito el error lo tienes aquí: "date_part('DAY', TIMESTAMP ff- fi) )" pero parece que lo copiaste y pegaste de oro lado. Hay que razonarle un poquito...