제가 보기엔 if not ( Table1.State in [dsEdit, dsInsert] ) then Table1.Edit; 란
부분이 걸리네요.. 현 상태가 Insert, Edit 상태가 아니라면 Edit? 그리고 바로 Append?
현재 Table1의 상태가 어떤지 몰르지만 Table1.Edit란 부분이 먹혀 버리고
Table1.Append; 란 부분을 실행하면 에러가 나겠죠?
이렇게 해보세요.
if not ( Table1.State in [dsEdit, dsInsert] ) then
Table1.Edit; <= 이 부분에 Break
라고 하신뒤 Table1.Edit란 부분에 Break를 걸고 해보세요..
그 부분이 걸리는지 안걸리는지..
아니면 님이 조건은 잘못 주신거 같은데..
if not ( Table1.State in [dsEdit, dsInsert] ) then
Table1.Edit
else <= 이 부분이 빠졌던거 아닌가요?
Table1.Append; (저는 state를 안써봐서 동작원리를 몰릅니당.. ^^;)
이도 저도 아니라면 죄송합니다.
꾸뻑~
김현영 wrote:
> 밑의 소스에서 데이타가 추가가 되지를 않습니다.
> Table1.Append; 문구가 들어가면 그이상은 명령이 진행(?)이되지를 않고
> 제일밑의 end;로 넘어가는것 같습니다.
> 테스트를 하기위해 Table1.Append;를 지우면 끝까지 진행이 되는것 같습니다.
> 데이터가 왜 추가가 되지를 않는지 답변좀 부탁드립니다.
> =========================================================================
>
> procedure TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);
>
> begin
> If Key = #13 Then
> Begin
>
> If IDYes = Application.MessageBox( '저장 하겟습니까?', '저장확인', MB_YESNO + MB_DEFBUTTON1 + MB_ICONEXCLAMATION + MB_APPLMODAL ) then
> Begin
> if not ( Table1.State in [dsEdit, dsInsert] ) then Table1.Edit;
>
> Table1.Append;// <***************** 문제점
>
> Table1.FieldByName('주민등록번호').AsString := Form2.MaskEdit1.Text;
> Table1.FieldByName('이름').AsString := Form2.Edit2.Text;
> Table1.FieldByName('주소').AsString := Form2.Edit4.Text;
> Table1.FieldByName('메모').AsString := Form2.Edit5.Text;
> Table1.FieldByName('연락처').AsString := Form2.MaskEdit2.Text;
> Table1.FieldByName('휴대폰').AsString := Form2.MaskEdit3.Text;
>
> Table1.Post;
>
> Form2.MaskEdit1.Text :='';
> Form2.Edit1.Text :='';
> Form2.Edit2.Text :='';
> Form2.Edit3.Text :='';
> Form2.Edit4.Text :='';
> Form2.Edit5.Text :='';
>
> Form2.MaskEdit1.SetFocus;
> {두번째 문자 위치로 커서를 보낸다}
> Form2.MaskEdit1.SelStart := 0;
> {문자를 선택하지 않은 상태로 만든다}
> Form2.MaskEdit1.SelLength := 16;
> Key := #0;
> end;
> end;
> end;