在寫程式時,會員累計消費需要+消費額,會員餘額需要-消費額,我就用了同一個參數代替消費'額,結果碰了一鼻子灰.讓我頭疼了幾乎一下午,最後還是專案經理指點迷津才得以解決.
原來的錯誤碼:
- with dataM.Q_xfgl_jz_gxhy do //更改會員消費次數、消費累計金額、卡內餘額等資訊
- begin
- close;
- sql.Clear;
- sql.Add('UPDATE hy SET hy_xfje = hy_xfje+:xfje, hy_xfcs = hy_xfcs+1, hy_je = hy_je-:xfje, hy_jf = hy_jf+:jf, hy_jfsyje = hy_jfsyje+:jfys ');
- sql.Add('WHERE (((hy_id)=:hy_id));');
- Parameters.ParamByName('xfje').Value := xfje;
- Parameters.ParamByName('jf').Value := strtofloat(lbl4.Caption);
- Parameters.ParamByName('jfys').Value := jfys;
- Parameters.ParamByName('hy_id').Value := hy_id;
- end;
後來的正確代碼:
- with dataM.Q_xfgl_jz_gxhy do //更改會員消費次數、消費累計金額、卡內餘額等資訊
- begin
- close;
- sql.Clear;
- sql.Add('UPDATE hy SET hy_xfje = hy_xfje+:xfje, hy_xfcs = hy_xfcs+1, hy_je = hy_je-:xfje1, hy_jf = hy_jf+:jf, hy_jfsyje = hy_jfsyje+:jfys ');
- sql.Add('WHERE (((hy_id)=:hy_id));');
- Parameters.ParamByName('xfje').Value := xfje;
- Parameters.ParamByName('xfje1').Value := xfje;
- Parameters.ParamByName('jf').Value := strtofloat(lbl4.Caption);
- Parameters.ParamByName('jfys').Value := jfys;
- Parameters.ParamByName('hy_id').Value := hy_id;
- end;
沒改之前程式編譯 運行沒有任何錯誤彈出,就是hy-je這個欄位執行後為空白. 把第二處的xfje改為xfje1,並給xfje1賦值後執行成功!