Ver Mensaje Individual
  #1  
Antiguo 27-11-2012
angel.sosa angel.sosa is offline
Miembro
NULL
 
Registrado: oct 2012
Posts: 22
Reputación: 0
angel.sosa Va por buen camino
update del query4 dentro de un while

hola amigos tengo un problema que no tengo idea de que hacer, tengo un cliclo while que se encarga de recorrer los datos desplegados en un DBgrid, el cual utiliza una combinación de datos de varias tablas mediante un IBQuery1. todo eso se despliega mediante un boton "Consultar".
el problema es q tengo un boton modificar que debe recorrir la informacion filtrada y desplegada en el DBgrid.
Pero al intentar Actualizar con otro IBQuery4 al cumplirse la condicion deseada me marca "Token UNkNOWn" Line 2.1

Código Delphi [-]
while not IBQuery1.Eof do
begin
  if((StrToInt(IBQuery1.FieldByName('DIAS_EN_PAGAR').AsString) > 50) And (StrToInt(IBQuery1.FieldByName('DIAS_EN_PAGAR').AsString) <= 10000) And (IBQuery1.FieldByName('POLITICA_ACTUAL').AsString <> '7') And (IBQuery1.FieldByName('POLITICA_ACTUAL').AsString <> 'TELEMARKETING')) then
   begin
   ShowMessage('Encontre uno Sin Descuento ' + IBQuery1.FieldByName('CLAVE_CTE').AsString);
   IBQuery4.SQL.Add('UPDATE PRECIOS_CLI_CLI');
   IBQuery4.SQL.Add('SET POLITICA_DSCTO_ART_CLI_ID = '+ Char(39)+'48'+Char(39)+' ');
   IBQuery4.SQL.Add('WHERE CLAVE_CLIENTE ='+Char(39)+ IBQuery1.FieldByName('CLAVE_CTE').AsString +Char(39)+ ' ');
   IBQuery4.Open;
   end;
    if((StrToInt(IBQuery1.FieldByName('DIAS_EN_PAGAR').AsString) > 40) And (StrToInt(IBQuery1.FieldByName('DIAS_EN_PAGAR').AsString) <= 50) And (IBQuery1.FieldByName('POLITICA_ACTUAL').AsString <> '7') And (IBQuery1.FieldByName('POLITICA_ACTUAL').AsString <> 'TELEMARKETING')) then
   begin
   ShowMessage('Encontre un DESCUENTO 4' + IBQuery1.FieldByName('CLAVE_CTE').AsString);
   IBQuery4.SQL.Add('UPDATE PRECIOS_CLI_CLI');
   IBQuery4.SQL.Add('SET POLITICA_DSCTO_ART_CLI_ID = '+ Char(39)+'11246'+Char(39)+' ');
   IBQuery4.SQL.Add('WHERE CLAVE_CLIENTE ='+Char(39)+ IBQuery1.FieldByName('CLAVE_CTE').AsString +Char(39)+ ' ');
   IBQuery4.Open;
   end;
   if((StrToInt(IBQuery1.FieldByName('DIAS_EN_PAGAR').AsString) > 30) And (StrToInt(IBQuery1.FieldByName('DIAS_EN_PAGAR').AsString) <= 40) And (IBQuery1.FieldByName('POLITICA_ACTUAL').AsString <> '7') And (IBQuery1.FieldByName('POLITICA_ACTUAL').AsString <> 'TELEMARKETING')) then
   begin
   ShowMessage('Encontre un DESCUENTO 3' + IBQuery1.FieldByName('CLAVE_CTE').AsString);
   IBQuery4.SQL.Add('UPDATE PRECIOS_CLI_CLI');
   IBQuery4.SQL.Add('SET POLITICA_DSCTO_ART_CLI_ID = '+ Char(39)+'11245'+Char(39)+' ');
   IBQuery4.SQL.Add('WHERE CLAVE_CLIENTE ='+Char(39)+ IBQuery1.FieldByName('CLAVE_CTE').AsString +Char(39)+ ' ');
   IBQuery4.Open;
   end;

 IBQuery1.Next;
end;
Responder Con Cita