Update queryde kendi yazdığım fonksiyonu kullanmak istiyorum. SQL Stringi bir türlü doğru şekilde yazamadım, yardımcı olabilir misiniz.
Birinci kod blok çalışan mevcut kod bloğu. Ben ikinci kod blokta görüldüğü şekilde MyRound fonksiyonunu queryde kullanmak istiyorum. Ben MyRound fonksiyonumu kullanabilmek için bir çok yol denedim hepsinde hata aldım, ya derlerken ya da çalışma anında. Bu nedenle yazdığım kodları paylaşmadım sadece ikinci kod blokta görüldüğü şekilde bir query çalıştırmak istiyorum. Tablodaki HS_B ve HS_A alanlarının üzerine madde tablosundan gelen değerleri ekleyerek bu toplamı da kendi round fonksiyonumu kullanarak tabloya update etmek istiyorum.
Delphi 10.2, MSSQL EXPRESS ve ADO Connection kullanıyorum.
Kod: Tümünü seç
TB_FISBASLIK.Close;
TB_FISBASLIK.Sql.Clear;
TB_FISBASLIK.Sql.Add( 'UPDATE FISBASLIK SET HS_B= (HS_B + :vBORC),HS_A= (HS_A + :vALACAK)');
TB_FISBASLIK.Sql.Add( 'WHERE HS_NO=:vHS_NO');
TB_FISBASLIK.Parameters.ParamByName('vHS_NO').value:= TB_FISMADDEHS_NO.Value;
TB_FISBASLIK.Parameters.ParamByName('vBORC').DataType:= ftfloat;
TB_FISBASLIK.Parameters.ParamByName('vBORC').Value:= TB_FISMADDEBORC.Value;
TB_FISBASLIK.Parameters.ParamByName('vALACAK').DataType:= ftfloat;
TB_FISBASLIK.Parameters.ParamByName('vALACAK').Value:= TB_FISMADDEALACAK.Value;
TB_FISBASLIK.ExecSql;
Kod: Tümünü seç
TB_FISBASLIK.Close;
TB_FISBASLIK.Sql.Clear;
TB_FISBASLIK.Sql.Add( 'UPDATE FISBASLIK SET HS_B= MyRound(HS_B + :vBORC,2),HS_A= MyRound(HS_A + :vALACAK,2)');
TB_FISBASLIK.Sql.Add( 'WHERE HS_NO=:vHS_NO');
TB_FISBASLIK.Parameters.ParamByName('vHS_NO').value:= TB_FISMADDEHS_NO.Value;
TB_FISBASLIK.Parameters.ParamByName('vBORC').DataType:= ftfloat;
TB_FISBASLIK.Parameters.ParamByName('vBORC').Value:= TB_FISMADDEBORC.Value;
TB_FISBASLIK.Parameters.ParamByName('vALACAK').DataType:= ftfloat;
TB_FISBASLIK.Parameters.ParamByName('vALACAK').Value:= TB_FISMADDEALACAK.Value;
TB_FISBASLIK.ExecSql;