Q&A

  • 데이타 베이스에서 데이타를 삭제하고 추가시키려구
어떤 테이블에... 기존에 있던 데이타를 지우구...



새로운 데이타를 입력 시키고자 하는 건데요...



TRDATE는 오늘 날짜구, 오늘날짜로 입력된 데이타를 지운후에, 새로운 걸 넣으려구...



자꾸 SQL문법 에러가 나서요...



부끄럽지만 소스를 올립니다... 뭐가 잘 못 된 건가여?!_!



with QryTranSum do

begin

SqlText := 'DELETE FROM '+ EMonth;

SqlText := SqlText + ' Where TRDATE = '+ nowdate ;

Close;

SQL.Clear;

SQL.Add(SqlText);

ExecSQL;

...

nowdate는 NowDate := FormatDateTime('yyyymmdd',now); 이구요...



오라클 DB를 쓰고 있답니다...



참~#







** 창밖에 눈이 온다고 하네요...



눈이 오는 건 안보이구... 쌓인 눈만 보이는데...^^



흑~ 저 좋은 눈을 앞에 두고도 컴 앞에만 앉아 있는 내 신세라니...!_!**

1  COMMENTS
  • Profile
    김고진 1999.12.15 06:17
    데이타타입의 변환이 잘못된것 같네요.

    FormatDateTime함수를 사용하는것을 보니 nowdate가 문자형인가 보군요.

    문자를 sql조건문에 추가할려면 ''로 둘러 싸야합니다.

    with QryTranSum do

    begin

    SqlText := 'DELETE FROM '+ EMonth;

    SqlText := SqlText + ' Where TRDATE = '''+ nowdate+''' ;

    Close;

    SQL.Clear;

    SQL.Add(SqlText);

    ExecSQL;

    end;

    이렇게 하면 되는데 보기도 어렵고 에러의 소지도 많기 때문에 파라미터를 사용하시는게 좋아요...조금 코딩은 더하지만

    with QryTranSum do begin

    Close;

    SQL.Clear;

    SQL.Add('DELETE FROM TableName');

    SQL.Add('where TRDATE = :Param1');

    ParamByName('Param1').AsString := FormatDateTime('yyyymmdd',now);

    ExecSQL;

    end;