Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-11-2011
Harfred Harfred is offline
Registrado
NULL
 
Registrado: ene 2011
Posts: 1
Poder: 0
Harfred Va por buen camino
Thumbs up Error Token From

Saludos a Todo el Foro.

Agradeciendoles, por anticipado y le imploro de favor, para ver quien de ustedes, puede ayudarme a solucionar este error de programación que se me esta dando dolor de cabeza y tengo varios meses trantando de resolver. He leido en algunos manuales pero no he tenido exitos, recurro a ustedes, para ver que me sugieren cuando ustedes tenga la oportunidad de responderme. Una vez más le agradezco la ayuda.

HarFred.

Estoy tratando de ejecutar una consulta en Delphi y cuando le doy ejecutar hago algunas selecciones Como: En el lado Izq. Selecciono Bajo Punto de Reorden y
en lado derecho Selecciono Cod. Producto, Descripcion, Pto Reorden y Existencia

Sale el sgte. error

Proyect Inventario.exe Raised Exception Class EDBEngineError with message 'Invalid use of key word. Token: From

Line Number: 1'. Stopped Process. Use step or run to continue

RadioGroup GroupBox1 con 8 CheckBox
Bajo Existencia Mínima Cod. Producto Pto. Reorden
Sobre Existencia Máxima Descripción Entradas
Bajo Punto de Reorden Existencia Mínima Salidas
Existencia Máxima Existencia

=============================================================
1 - Uson un BitBtn
1 - Query DBTable
1 - DataSource
1 - DBGrid

También estoy usando
1 - RadioGroup Tiene las sgte. Opciones.
Nombre del RadioGroup en Delphi Tipo_Consulta_Producto

Bajo existencia M
ínima
Sobre Existencia Máxima
Bajo Punto de Reorden

1 - GroupBox1 con 8 CheckBox
Nombre de los CheckBox en Delphi
1er. Check_Cód_Producto
2do. Check_Descripción
3er. Check_Mínima
4to. Check_Máxima
5to. Check_Pto_Reorden
6to. Check_Entradas
7mo. Chec_Salidas
8vo. Check_Existencia

Este es el Código
BitBtn2 Se llama Ejecutar
Estoy usando un fsMDIChiild
El Formulario se Lama Forma_Consulta
Código Delphi [-]
 
===============================================================
procedure TForma_Consulta_Producto.BitBtn2Click(Sender: TObject);
Var
 Campos: String;
begin
 Campos:= '';
{Cerrar la Consulta SQL}
 Query_Producto.Active:= False;
 {Borrar la lnstrucción SQL Actual}
 Query_Producto.SQL.Clear;
 If Check_Cod_Producto.Checked Then Campos:= Campos +'Codigo_Producto';
 If Check_Descripcion.Checked     Then Campos:= Campos +'Descripcion_Producto';
 If Check_Minima.Checked           Then Campos:= Campos +'Existencia_Minima';
 If Check_Maxima.Checked          Then Campos:= Campos +'Existencia_Maxima';
 If Check_Pto_Reorden.Checked   Then Campos:= Campos +'Punto_Reorden';
 If Check_Entrada.Checked          Then Campos:= Campos +'Total_Entradas';
 If Check_Salida.Checked            Then Campos:= Campos +'Total_Salida';
 If Check_Existencia.Checked   {Campo Calculado}
 Then Campos:= Campos +'(Total_Entradas - Total_Salidas) As Existencia,';
 {Cuando no hay un botón de radio seleccionado}
 If (Tipo_Consulta_Producto.ItemIndex = -1) or (Campos = '') {No hay campos seleccionado}
     Then Begin
             MessageDlg('Debe seleccionar un tipo de consulta/o Campos',mtError, [mbOk], 0);
             Exit;
          end;
{Eliminar la última "coma"}
 //campos[length(Campos)]:=''; 
 Campos:= 'Select '+Campos;
 With Query_Producto
 Do Case Tipo_Consulta_Producto.ItemIndex Of {Los Items se enumeran desde (0)}
 {Existencia Bajo Existencia Mínima}
 0 : Begin
      Sql.Add(Campos +'From Producto ');
      Sql.Add('Where (Total_Entradas - Total_Salidas) < Existencia_Minima')
     end;
 {Existencia Bajo Existencia Máxima}
 1 : Begin
      Sql.Add(Campos +'From Producto ');
      Sql.Add('Where (Total_Entradas - Total_Salidas) > Existencia_Maxima')
     end;
 {Existencia Bajo Existencia Mínima}
 2 : Begin
      Sql.Add(Campos +'From Producto ');
      Sql.Add('Where (Total_Entradas - Total_Salidas) <= Punto_Reorden')
     end;
end;
{Ejecutar la Instrucción Sql}
Query_Producto.Open;
{Mostrar el DBGrid Con el resultado de la consulta}
DBGrid1.Visible:= True;
end;
end.

Última edición por marcoszorrilla fecha: 27-11-2011 a las 10:59:35.
Responder Con Cita
  #2  
Antiguo 26-11-2011
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Esto colócalo justo antes de abrir la consulta, te ayudará a ver dónde está el error, aunque yo apostaría por una concatenación no deseada:

Código Delphi [-]
ShowMessage(Query_Producto.Sql.Text);

Sql.Add(Campos +'From Producto ');
//Prueba esto otro
Sql.Add(Campos +'  From Producto ');

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 27-11-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.



.
Responder Con Cita
  #4  
Antiguo 28-11-2011
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Para mi el problema esta en la concatenación de los campos que forman parte de la consulta, en ningun lugar veo que se separen por coma ','

Código SQL [-]
 If Check_Cod_Producto.Checked Then Campos:= Campos +'Codigo_Producto';
 If Check_Descripcion.Checked     Then Campos:= Campos +'Descripcion_Producto';
 If Check_Minima.Checked           Then Campos:= Campos +'Existencia_Minima';
 If Check_Maxima.Checked          Then Campos:= Campos +'Existencia_Maxima';
 If Check_Pto_Reorden.Checked   Then Campos:= Campos +'Punto_Reorden';
 If Check_Entrada.Checked          Then Campos:= Campos +'Total_Entradas';
 If Check_Salida.Checked            Then Campos:= Campos +'Total_Salida';

El resultado debe ser:
Campos=>'Codigo_ProductoDescripcion_ProductoExistencia_MinimaExistencia_MaximaPunto_ReordenTotal_Ent radasTotal_Salida'...

Lo correcto deberia ser:
Campos=>'Codigo_Producto, Descripcion_Producto, Existencia_Minima, Existencia_Maxima, Punto_Reorden, Total_Entradas, Total_Salida'...

Si solo seleccionas un campo creo que deberia funcionar sin problemas...
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Token unknown - line 2, column 34 ,. Rofocale Varios 5 15-06-2011 19:25:57
invalid use of keyword token:= gonza_619 SQL 8 26-09-2010 00:39:44
error (incorrect token followed by ":") en query voldemmor Conexión con bases de datos 4 16-04-2008 18:27:00
problemas con sentencia..error token unknown BlueSteel Firebird e Interbase 5 11-07-2007 20:36:57
Token unknown ? sierraja SQL 2 30-08-2005 03:56:53


La franja horaria es GMT +2. Ahora son las 20:21:47.


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