|
아무리 올바른 SQL문인것 같아도 DBMS의 종류에 따라 되기도 하고 안되기도 합니다. 전혀! C++ Builder의 문제가 아니죠.
예를 들어.. 둘 다 MS의 제품이면서도 mdb같은 경우 no 같은 단어는 키워드이지만 SQL서버에선 아닙니다. 즉.. no라는 이름의 필드명을 가진 테이블에 대해 똑같은 SQL문장을 적어도 SQL서버에서는 잘 되지만 mdb에서는 안되죠. mdb에서 쓰려면 no 대신에 [no] 와 같이 앞뒤로 브라켓을 씌워야 합니다.
적어놓으신 문장은 모든 필드에 대해 값을 대입하는 문장인데 이런 것 역시 지원하는 DBMS가 있고 그렇지 않은넘도 있습니다.
CREATE 문장도 마찬가지죠. mdb의 경우 Jet 드라이버에서는 CREATE는 아예 지원을 안합니다.
심지어 mdb에서는 특정 한글의 경우 엉뚱한 글짜로 대치되는 골때리는 문제도 있습니다. 그 글짜가 뭐였는지는 까먹었지만.. 쵀였나.. 암튼..
그런 문제를 해결하려면 DBMS의 문서를 꼼꼼히 읽어보시거나 시행착오를 거치셔야 할겁니다.
결론은.. SQL은 결코 표준화된 명령체계가 아니므로 '이 문장이 분명 맞는데..'라는 전제로 접근하시면 낭패보기 딱 좋다는 말입니다. '이 문장이 틀릴 수도 있지..'라고 접근하시면 잘 될겁니다.
|