PDA

Ver la Versión Completa : Problema con Query y tabla


einarcito
26-10-2008, 04:19:21
hola chicos tengo un problemita, estoy con un sistema de ventas el cual necesito hacer una suma de los subtotales de todas las lineas de ventas y el resultado colocarlo en un Tedit. Lo q estoy haciendo es esto. Nose si tiene algun sentido para uds.

with dm.qpagar do begin
active:=false;
sql.Clear;
sql.Add('SELECT sum(subtotal) as total from ventaActual ');
active:=true;
qpagar:= fieldbyname('total').asVariant;
editTotal.Text:=dm.qpagar;

los errores q me da son:
[Error] UnitVentas.pas(227): Undeclared identifier: 'qpagar'
[Error] UnitVentas.pas(228): Incompatible types: 'String' and 'TQuery'
[Fatal Error] sistema.dpr(25): Could not compile used unit 'UnitVentas.pas'

fundamentalmente el compilador me marca en esta linea

qpagar:= fieldbyname('total').asVariant;


Gracias.

marcoszorrilla
26-10-2008, 09:23:59
with dm.qpagar do begin
active:=false;
sql.Clear;
sql.Add('SELECT sum(subtotal) as total from ventaActual ');
active:=true;
editTotal.Text:=dm.qApagar.Fields[0].AsString;


Un Saludo.

Neftali [Germán.Estévez]
26-10-2008, 09:31:58
Iba a comentarte que con casi 70 mensajes ya deberías haber aprendido a usar TAGS, aunque veo que otra persona (marcos) ya ha hecho el trabajo.

En cuanto al error, pues el primero se debe a que en varios sitios haces referencia a qpagar sin poner delante dm. como has hecho en la primera línea.

Personalmente nunca me ha gustado el with, porque a veces lía más las cosas y da más problemas que las ventajas que ofrece. Este es un ejemplo de ello.

Mi opinión es que elimines el with y pruebes el código sin él.

El segun error es por esta línea:

editTotal.Text:=dm.qpagar;en la que estás intentando asignar a un string (izquierda) una cosa que es un TQuery/TTable (derecha).

EDITO: Veo que Marcos ya ha completado el mensaje.
por faor utiliza TAGs.

einarcito
26-10-2008, 14:07:44
gracias chicos me funciono, no se cual es el tag para la sintaxis de delphi :S

enecumene
26-10-2008, 14:12:43
gracias chicos me funciono, no se cual es el tag para la sintaxis de delphi :S

El TAG de Delphi es el que está al lado del SQL ese que parece un monumento romano ;). Además lo puedes poner manual de la siguiente forma:

[ DELPHI] codigos [/DELPHI ]

Nota: no puede haber espacios entre los corchetes, lo hice así para que vieras como ejemplo.

Saludos.

einarcito
26-10-2008, 14:16:56
Ok gracias. ahora una cosita
dm.query.fields[0].asstring
el fields[0].asstring seria lo mismo q un fieldbyname.AsVariant? cual es la diferencia porq la cual no anda mi programa?

enecumene
26-10-2008, 14:21:24
Ok gracias. ahora una cosita
Código Delphi [-] (http://www.clubdelphi.com/foros/#)dm.query.fields[0].asstring

el fields[0].asstring seria lo mismo q un fieldbyname.AsVariant? cual es la diferencia porq la cual no anda mi programa?

Fields[0].Asstring llama al campo a través del índice de los campos persistentes del Dataset, y FieldByName('campo').asstring llama al campo por su nombre. FieldByName.AsVariant no estás llamando ningún campo por ende no te funciona.

Saludos.

einarcito
26-10-2008, 14:23:44
muy biennn mas que claro muchas gracias hasta la proxima

Neftali [Germán.Estévez]
26-10-2008, 17:53:54
gracias chicos me funciono, no se cual es el tag para la sintaxis de delphi :S
Poner TAG's en los códigos Delphi (http://tinyurl.com/5nltsu)

No era tan difícil :(:(:(