며칠 전에 디버깅을 하는데, 자꾸 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 예약어더군요.
http://support.microsoft.com/kb/248738/ko
이건 Access 2002 이상에서의 예약어에요. [MSDN]
http://support.microsoft.com/kb/286335/ko
원래대로라면 예약어를 피해서 적는게 맞지만, 그래도 어쩔 수 없을 경우에는 []를 붙여주면 되는 것 같네요.
'IT > troubleshooting' 카테고리의 다른 글
org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field 에러 의외의 해결법 (0) | 2011.11.25 |
---|---|
맥에서 이클립스 2개 켜기 (2) | 2011.11.06 |
.NET Framework Windows Form(C#)에서 동적으로 PictureBox를 생성해 이미지 띄우기 (1) | 2011.10.06 |
MS SQL Server Management Studio 2005에서 LIKE를 사용할 때 (0) | 2011.01.28 |
현재 적용된 CSS 스타일 자바스크립트에서 얻어오기 (2) | 2010.12.17 |