PDA

Ver la Versión Completa : Este qry no me funciona, porque?


alcides
22-07-2005, 15:24:24
hola a todos,
Amigos: quiero modificar un campo de una tabla llamada Catalogo con el resultado de una variable en mi reporte y tengo lo siguiente:
en el on print de mi variable tengo esto.

procedure TFrm_Sumar_Balance.ppVariable2Print(Sender: TObject);
begin
qry_DetalleDetalleNumero_Transacion.Value;
if (qry_detalleOrigen.Value = 'AC') or
(qry_detalleOrigen.Value = 'GO') then begin
ppVariable2.Value := (ppVariable1.Value + ppDBCalc2.Value) - ppDBCalc3.Value;
end;
if (qry_detalleOrigen.Value = 'PA') or
(qry_detalleOrigen.Value = 'PT') or
(qry_detalleOrigen.Value = 'IN') then begin
ppVariable2.Value := (ppVariable1.Value + ppDBCalc3.Value) - ppDBCalc2.Value;
end;

with Qry_Catalogo do
Begin
qry_catalogo.close;
Qry_Catalogo.sql.Clear;
qry_catalogo.SQL.add('update Tbl_Catalogo');
qry_catalogo.SQL.Add('set balance := ppVariable.Value');
qry_catalogo.SQL.add('Where Cuenta = Detalle.Cuenta');
qry_catalogo.ExecSQL;
end;
end;

gracias mil, por la ayuda que me puedan brindar

Alcides
Rep.Dom.

delphi.com.ar
22-07-2005, 15:46:44
Supongo que no funciona significa que te da un error, posiblemente en el ExecSQL, por estas líneas:
qry_catalogo.SQL.add('update Tbl_Catalogo');
qry_catalogo.SQL.Add('set balance := ppVariable.Value');
qry_catalogo.SQL.add('Where Cuenta = Detalle.Cuenta');

Lo que le llegará al motor es: "update Tbl_Catalogo set balance := ppVariable.Value Where Cuenta = Detalle.Cuenta" y el motor no tiene idea de que es ppVariable.Value y Detalle.Cuenta. Donde ppVariable.Value es un control de tu formulario y Detalle.Cuenta no se si te refieres a un campo de otra tabla o a que?

Fíjate de armar algo con este formato:

DataSet.Sql := 'UPDATE TABLA ' + ;
'SET CAMPO = :Param0 ' +
'WHERE ID = :Param1';
DataSet.Params[0].Value := MiValor;
DataSet.Params[1].Value := MiId;
DataSet.ExecuteSql;



http://www.clubdelphi.com/foros/showthread.php?t=12305&highlight=shared+pool

alcides
22-07-2005, 19:33:03
Gracias delphi.com.ar
por tu ayuda y orientación





Gracias mil,


Alcides
Rep.Dom.