Ver Mensaje Individual
  #3  
Antiguo 02-01-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Reputación: 26
ContraVeneno Va por buen camino
Dos cosas: Te puedes ahorrar la variable "Consulta" y puedes hacer que el sistema te diga en que línea te equivocaste en caso de algún error en tu consulta SQL.

Con la forma que estas utilizando, si tienes algún error en la instrucción SQL, el sistema te dirá que hay un error "SQL error en la línea 1". Esto es porque pones toda la instrucción en una variable "String" y se la pasas al componente TADOQuery en una sola línea.

Si utilizas la siguiente forma, te ahorras la variable "consulta" y le pasas la instrucción SQL bien organizada en varias líneas, con lo que, si existe algún error, el sistema te dirá en que línea está el error:

Código Delphi [-]
with UnAdoQuery do begin
 If active then close;
 SQL.Clear;
 SQL.Add('Select CveProd, Descripcion, CantVta, PrecioV, ');
 SQL.Add('Sum(CantVta*PrecioV) ');
 SQL.Add('From producto P, venta V');
 SQL.Add('Where V.CveProd = P.CveProd ');
 SQL.Add('and V.NoVenta = :numero');
 SQL.Add('Group By CveProd, Descripcion, CantVta, PrecioV');
 Parameters.ParamByName('Numero').Value := numero;
 Open;
end; //with

Ahora mi duda es ¿por qué utilizas a "numero" como string? se supone que "numero" es un número, ¿no sería mejor manejarlo como "integer" o como "Float"?
__________________

Responder Con Cita