|
별다른 프로그램을 만드려는게 아니고요
mysql 데이터베이스에 ODBC 로 연결해서 데이터베이스를 업데이트 하는 프로그램을 만들려고 했었습니다.
다른 기능은 아무것도 없이 그냥 폼에다 데이터 컨트롤 몇개만 붙여서 만들수 있는걸요.
mysql ODBC 드라이버는 제대로 잘 설치했고 연결은 잘 됩니다.
그런데 프로그램을 실행하니 mysql DB 의 timestamp 필드에서 문제가 있었습니다.
timestamp 필드는 아무 값도 안넣어도 자동으로 입력했던 시간을 기록하는거죠? 그런데
CBuilder 로 만든 프로그램에서는 이게 안되는것 같습니다.
제가 연결하는 DB 는 대충 이렇게 생겼습니다.
DB 이름 - news
Table 이름 - dbnews
Field - news_number , news_timestamp , news_text
Field 이름 news_number
Datatype int
Type width 20
Type options None
Autoincrement Yes
Allow nulls No
Default value NULL
Part of primary key Yes
Field 이름 news_timestamp
Datatype timestamp
Type width 14
Allow nulls Yes
Default value NULL
Part of primary key No
Field 이름 news_text
Datatype text
Allow nulls Yes
Default value NULL
Part of primary key No
C++ Builder 에서 새 프로젝트를 만든다음 Form 에다가 DataSource, Table,
DBGrid, DBNavigator 를 올린다음
Table1 속성의 DatabaseName 에 ODBC 관리자에서 만든 news 를 선택하고
TableName 에 dbnews 를 선택하고 Activate 를 시켰습니다.
DataSource1 속성의 DataSet 에는 Table1 을 선택했습니다. 마찬가지로 DBGrid 와
DBNavigator 도 모두 DataSource1 에 연결을 했습니다.
프로그램을 실행시켜보니까 DBGrid 부분에 데이터가 잘 나오더군요.
그래서 + 처럼 생긴 new record 버튼을 누르고 news_number 하고 news_timestamp 부분은
그냥 아무값도 안넣고 뉴스 내용만을 집어넣고 update 버튼을 누르니까
Field 'news_timestamp' must have a value' 라는 에러가 나오더군요.
news_number 는 자동증분이 그냥 잘 되는데 timestamp 는 안되는 모양입니다.
이 난관을 도대체 어떻게 헤쳐 나가야 할지 부디 고수님들의 답변을 부탁드립니다.
책을 뒤져봐도 인터넷을 뒤져봐도 도저히 못 찾겠어요.
|