>> 질문1 : 꽃순이님 (
bcbdn C++Builder Q&A 10611번 )
"DBNavigator 를 사용하지 않고 버튼으로 DB Control 하는 방법좀 가르쳐 주세요."
Table1->First();
Table1->Prior();
Table1->Next();
Table1->Last();
저건 알겠는데요.. DBNavigator 의 + , - , ^ , v , x , 되돌리기 기능들은 어떻게 구현할수 있지요?
Append, Insert 등은 알겠는데... 제가 하려고 하는거랑 맞지를 않는거 같아서요..
폼 위에여 DBEdit 가 몇개 있는데 전부 database 라는 DB 의 필드에 연결되어있다고 치구요..
책이나 여기서 찾아본거로는요 새 값을 넣을경우 버튼을 누르면 새 입력 모달폼을 띄워서
거기다가 입력하는걸로 업데이트를 하는데요..
Navigator 로는 + 를 누르면 그냥 같은 폼의 모든 DBEdit 가 빈칸이 되면서 입력을 기다리잖아요..
이걸 일반 버튼으로는 어떻게 만드는지 모르겠어요..
가르쳐 주세요...
>> 답변1 : 개박살.U&I님 (
bcbdn C++Builder Q&A 10613번 )
안녕하세요? 개박살입니다.
DBEdit가 DB에 Table이랑 직접연결되어있다는 건 그 Table에서 어떤 작업을 하면 바로 적용이 된다는
점을 이용하시면 됩니다. Table1가 DBEdit 가 연결되어있다면, 버튼1에 Table1->Append() 를 코딩하고
버튼1를 눌러보시면, Table1과 연결된 DBEdit 는 모두 빈란을 가지게 됩니다.
Table1->Append()자체가 맨끝의 공란의 레코드를 만들고 커서를 그곳에 위치하게 하니까요 ^^;
그담에 DBEdit 들에 넣고싶은 값을넣고 버튼2에다가 이렇게 하시면
try {
Table1->Post();
}
catch(const Exception& e) {
Application->MessageBox(e.Message.c_str(), "Database Write Error", MB_OK|MB_ICONERROR);
Table1->CancelUpdates();
}
입력된 값을 쓰게 되는거죠. 이런 Exception은 꼭 걸어야합니다...
글구, 버튼3에다가는 취소기능..
Table1->Cancel();
을 입력해두시면 간단한 DB입력창이 되는거죠 ^^;
설명이 좀 부족한듯하네요 ^^;; 참고정도는 하세요~~
>> 질문2 : 꽃순이님 (
bcbdn C++Builder Q&A 10615번 )
" 레코드 삭제 버튼은 어떻게 되요? "
>> 답변2 : 최보현.U&I님 (
bcbdn C++Builder Q&A 10616번 )
유엔아이 입니다.
지우기 버튼은 구냥
Table1->Delete();
하시면 됩니다.
역시 익셉션 처리는 해주는게 좋겠져 ...