Q&A

  • SQL문에서 업데이트후에 NULL값을 넣으려면?
q_update.Close;
q_update.SQL.Clear;
q_update.SQL.Add(' update table set C = chg_C, ' +
                             '                       D  = chg_D, ' +
                             '                       E  = chg_E,  ' +
                             '                       chg_C =null, '+
                             '                       chg_D =null, '+
                             '                       chg_E =null '+
                             '  where A  = :A  ' +
                             '    and B   = :B   ' +
                             '    and C   = :C  ' +
                             '    and D    = :D  ' +
                             '    and E    = :E  ' );
q_update.ParamByName('A').AsString :=  q_origin.fieldbyname('A').AsString;
q_update.ParamByName('B').AsInteger :=  q_origin.fieldbyname('B').AsInteger;
q_update.ParamByName('C').AsString :=   q_origin.fieldbyname('C').AsString;
q_update.ParamByName('D').AsString :=  q_origin.fieldbyname('D').AsString;
q_update.ParamByName('E').AsInteger :=  q_origin.fieldbyname('E').AsInteger;
q_update.ExecSQL;

이런식으로 업데이트를 시켜주면, C,D,E값을 널로 인식하여 ERROR가 발생합니다. (C,D,E값은 널이 들어갈 수 없는 필드입니다.)
그래서 위의 SQL문에서 C,D,E값에 chg_C,D,E값을 넣어주고,
따로 널값을 넣어주는 SQL을 실행시켜주어야 하더군요..
이런 방법 외에 좀 더 시스템에 부하를 덜 주는 방법이 없을까요?
도움 부탁드릴게요..
제가 아직 초보라서요..^^
0  COMMENTS