Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-01-2009
Lizette Lizette is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 16
Lizette Va por buen camino
Como hacer consulta sql en ADOQuery

Hola, tengo un problema con la consulta sql.

El codigo de la consulta es el siguiente:

Código Delphi [-]
procedure TfrmSelectProd.SQLVenta(numero: String);
var
  consulta: string;
begin
consulta:='Select CveProd, Descripcion, CantVta, PrecioV, Sum(CantVta*PrecioV) From producto, venta Where Venta.CveProd=producto.CveProd and venta.NoVenta=';
  consulta:=consulta+(numero)+' Group By CveProd, Descripcion, CantVta, PrecioV';
  with QyVenta do
    begin
    Close;
    SQL.Clear;
    SQL.Add(consulta);
    Open;
    end;

end;

El contenido de la consulta la visualizo en un dbgrid, pero al mandar llamar el procedimiento con el parametro SQLVenta(NoVta); NoVta es una variable string que contiene el numero de venta, me causa error, dice que CveProd es redundante..
Responder Con Cita
  #2  
Antiguo 02-01-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿De qué tipo es el campo de la consulta?
Tal vez necesite comillas simples. En ese caso utiliza:

Código Delphi [-]
...
consulta:=consulta+QuotedStr(numero)+' ...
...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 02-01-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como Hacer La Siguiente Consulta... rgstuamigo MySQL 2 11-09-2008 22:19:33
Como hacer esta consulta BlueSteel Varios 7 01-04-2008 21:55:19
Como hacer una consulta (Query) con dos DB? El_Raso Firebird e Interbase 8 30-01-2007 05:37:49
¿Como hacer una Consulta en el Onchange de un TEdit? day_eli Conexión con bases de datos 8 28-01-2007 03:06:53
como hacer consulta SQL con fecha usando Between MaSSaKKre SQL 4 15-09-2005 03:28:26


La franja horaria es GMT +2. Ahora son las 15:44:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi