Club Delphi  
    Paypal   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 19-06-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Unhappy

Hola Roman, tarde pues me puse a seguir tu consejo y solo tengo un ultimo problema. Genero la consulta y campos persistentes para el Query q la construye. Ademas añadi un campo calculado (MONTOCOMISION) q obtiene el total q deseo asignar a un campo fisico (COMISION) de una de las tablas involucradas en la consulta, ahora lo q me falta es pasarle una clave consecutiva para identificar a los regsitros incluidos en dicha consulta en particular y el valor del campo calculado que corresponde a cada registro.
Hago lo siguiente en AfterPost de la cabecera:
Código:
 
procedure TDM.ComisionesAfterPost(DataSet: TDataSet);
begin
UpdateComision.ModifySQL.Text:='update Ventas_Mov '+
'set  '+
'  CLAVECOMISION = :'+QuotedStr(IntToStr(ComisionesCLAVE.Value))+','+
'  COMISION = :MONTOCOMISION '+
' where'+
'  NUM_RECIBO = :OLD_NUM_RECIBO and'+
'  NCONTRATO = :OLD_NCONTRATO and'+
'  IDUsuario = :OLD_IDUsuario and'+
'  FECHA = :OLD_FECHA and'+
'  EFECTIVO = :OLD_EFECTIVO and'+
'  CHEQUE = :OLD_CHEQUE and'+
'  BANCO = :OLD_BANCO and'+
'  NUM_CHQ = :OLD_NUM_CHQ and'+
'  CVE_COBRADOR = :OLD_CVE_COBRADOR and'+
'  CLAVECOMISION = :OLD_CLAVECOMISION and'+
'  COMISION = :OLD_COMISION';
UpdateComision.ExecSQL(ukModify);
DetailComision.ApplyUpdates;
end;
Y el error es que al dar ExecSQL, me manda un mensaje de error q dice q el valor de COMISIONESClave.Value no es un campo. La razon es obvia pues no es un campo de la consulta. Pero el punto es q debo de asignar dicho valor a todos los registros. Asi q cual es la sintaxis para q acepte dicho valor?. Busque en los mensajes del Foro y en la ayuda de Delphi pero no encontre la solucion.

Espero haberme explicado.

Salu2.

Nota: Al asignar update Object al Query la Rejilla me permite agregar valores y supuestamente se guardan pero no ocurre en la realidad.
Responder Con Cita
  #2  
Antiguo 21-06-2004
Avatar de nefy
nefy nefy is offline
No confirmado
 
Registrado: nov 2003
Posts: 171
Poder: 0
nefy Va por buen camino
Hola una vez mas, leyendo mas acerca del UpdateSQL encontre q este permite editar sobre el resultado de la consulta pero segun como el desarrollador lo establezca se estaran vaciando los datos almacenados en cache a la base de datos y como mi sistema estara en red intente hacer la actualizacion despues de guardar en la tabla de cabecera asi:
Código:
MyQuery.Database.StartTransaction;
try
MyQuery.ApplyUpdates;
MyQuery.Database.Commit;
MyQuery.CommitUpdates;
except
MyQuery.Database.Rollback;
end;
Pero envia una excepcion ("Type mistmatch Expresion"), a decir verdad no encuentro la razon de dicha excepcion pues ya no modifico la sentencia de actualizacion generada por el UpdateSQLEditor, sino q solo "vuelco los datos" a la Bd con las instrucciones anteriorermente citadas. El codigo q me genera el editor es:
Código:
update Ventas_Mov
set
  NUM_RECIBO = :NUM_RECIBO,
  NCONTRATO = :NCONTRATO,
  IDUsuario = :IDUsuario,
  FECHA = :FECHA,
  EFECTIVO = :EFECTIVO,
  CHEQUE = :CHEQUE,
  BANCO = :BANCO,
  NUM_CHQ = :NUM_CHQ,
  CVE_COBRADOR = :CVE_COBRADOR,
  CLAVECOMISION = :CLAVECOMISION,
  COMISION = :COMISION
where
  NUM_RECIBO = :OLD_NUM_RECIBO and
  NCONTRATO = :OLD_NCONTRATO and
  IDUsuario = :OLD_IDUsuario and
  FECHA = :OLD_FECHA and
  EFECTIVO = :OLD_EFECTIVO and
  CHEQUE = :OLD_CHEQUE and
  BANCO = :OLD_BANCO and
  NUM_CHQ = :OLD_NUM_CHQ and
  CVE_COBRADOR = :OLD_CVE_COBRADOR and
  CLAVECOMISION = :OLD_CLAVECOMISION and
  COMISION = :OLD_COMISION
Esperando haberme explicado escucho sugerencias.
Salu2
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


La franja horaria es GMT +2. Ahora son las 04:45:40.


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