며칠 전에 디버깅을 하는데, 자꾸 INSERT 구분에서 에러가 난다는 겁니다. 엑서스 상에서 직접 쿼리를 실행해보면 되고, ODBC를 통해서 사용하면 INSERT INTO 구문 에러라며 Exception이 자꾸 발생하는데...
 
뭐 행이 다발로 있는 것도 아닌데, INSERT 구문 같이 사소한 구문이 자꾸 안되니까 이거 어이도 없고, 화도 나고 하더군요.그래서 어떻게 할까 하다가 엑서스에서 실행을 해본 후 쿼리 디자인을 다시 살펴보기로 했습니다. 뭐가 바뀌었는지 처음에는 못 깨달았는데, 자세히 보니 이런게 다르더군요.

예를 들어서,

원래 쿼리 ) INSERT INTO t_table(file,attrib,action) VALUES("0",707,3)
엑서스 쿼리) INSERT INTO t_table(file,attrib,[action]) VALUES("0",707,3)

이렇게 되는거에요.

그래서 []는 왜 붙지? 라고 심각히 고민을 했어요.

아마도 예약어겠지, 라고 싶었는데 mdb 예약어는 아닌거 같더라구요.

이상하다 싶었는데, 인터넷을 할 수 있게 된 짬을 이용해서 찾아보니 Jet 4.0 예약어더군요.

Jet 4.0 예약어는 아래를 참고해보세요. [MSDN]
http://support.microsoft.com/kb/248738/ko

이건 Access 2002 이상에서의 예약어에요. [MSDN]
http://support.microsoft.com/kb/286335/ko

원래대로라면 예약어를 피해서 적는게 맞지만, 그래도 어쩔 수 없을 경우에는 []를 붙여주면 되는 것 같네요.


Posted by TY
,