|
빌더2006을 쓰고 있습니다.
일단 폼 디자인에서 CheckQuery라는 이름으로 TSQLQuery객체를 만들어 SQLConnection과 아래 쿼리를 넣었습니다. CHECKDATE 필드는 datetime입니다.
DELETE FROM CHECKHISTORY WHERE CHECKDATE >= :begindate AND CHECKDATE < :enddate
그리고 코드에다 아래를 추가했습니다. 버튼을 클릭하면 나오는 이벤트로 잡았습니다.
AnsiString bpstr = "begindate";
AnsiString epstr = "enddate";
TSQLTimeStamp beginstamp = DateTimeToSQLTimeStamp( begindate );
TSQLTimeStamp endstamp = DateTimeToSQLTimeStamp( enddate );
DBConn->Open();
CheckQuery->Prepared = true;
CheckQuery->ParamByName(bpstr)->AsSQLTimeStamp = beginstamp ;
CheckQuery->ParamByName(epstr)->AsSQLTimeStamp = endstamp ;
CheckQuery->ExecSQL(false);
쿼리 10개정도가 다 같은 형태의 날짜로 구분해서 지우는 것이라 따로 ansistring과 timestamp변수를 만들어 넣어 돌리는 식인데, 실제 실행을 해보면 예외가 발생합니다 CheckQuery: parameter 'begindate' not found
이번뿐이 아니라 그 전에도 이런 일이 자주 발생했었습니다. 그러다 소스 한두줄 바꾸어보고 몇 컴파일 다시하고 실행 다시 해다보면 되기도 했는데, 저도 어떻게 수정을 해서 되었는지를 모르겠습니다.ㅡㅡ;; 좀 더 구체적인 해결방안을 알고싶습니다.
|