안녕하세요..
그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든요.. ^^;
음.. 간단하게 입력하고, 검색하는 예제에서 입력하고 나면
다음과 같은 에러 메시지가 뜹니다.
좀 봐 주세요...
-----------------------------------------------------------------------
Project Project1.exe raised exception class EDBEngineError
with message 'Table does not support this operation
because it is not uniquely indexed.'.
Process stopped. Use Step or Run to continue.
-----------------------------------------------------------------------
위와 같은 에러가 뜨면서 다운되었다가 reset 시켰다가 다시 실행시켜 보면,
DB에 저장은 되어 있습니다.
음... 코드는 아래와 같습니다. 참고하셔서 한번 알려 주세요...
// 입력 버튼 클릭해서 입력
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Table1.Active then
Table1.Open;
try
Table1.Insert;
Table1.FieldByName('Num').value := strtoint(edit1.Text);
Table1.FieldByName('Name').value := edit3.Text;
Table1.FieldByName('PG').value := strtoint(edit2.Text);
Table1.FieldByName('SG').value := strtoInt(edit4.Text);
Table1.Post;
Table1.Refresh;
Except
showmessage('입력 중 에러 발생!');
end;
end;
> 안녕하세요..
>
> 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든요.. ^^;
>
>
> 음.. 간단하게 입력하고, 검색하는 예제에서 입력하고 나면
>
> 다음과 같은 에러 메시지가 뜹니다.
>
> 좀 봐 주세요...
>
> -----------------------------------------------------------------------
> Project Project1.exe raised exception class EDBEngineError
> with message 'Table does not support this operation
> because it is not uniquely indexed.'.
> Process stopped. Use Step or Run to continue.
> -----------------------------------------------------------------------
> 위와 같은 에러가 뜨면서 다운되었다가 reset 시켰다가 다시 실행시켜 보면,
> DB에 저장은 되어 있습니다.
>
> 음... 코드는 아래와 같습니다. 참고하셔서 한번 알려 주세요...
>
>
> // 입력 버튼 클릭해서 입력
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> if not Table1.Active then
> Table1.Open;
> try
> Table1.Insert;
> Table1.FieldByName('Num').value := strtoint(edit1.Text);
> Table1.FieldByName('Name').value := edit3.Text;
> Table1.FieldByName('PG').value := strtoint(edit2.Text);
> Table1.FieldByName('SG').value := strtoInt(edit4.Text);
>
> Table1.Post;
> Table1.Refresh;
> Except
> showmessage('입력 중 에러 발생!');
> end;
>
> end;
>
db에서 Key 선언이 되었지요!!~
그럼...
Table1.Insert; 이 문장부터 아래 처럼 해보세요!!~~
Table1.SetKey;
Table1.FieldByName('Num').asstring := strtoint(edit1.Text); // Key;
// Key 선언한 것 모두...
if Table1.gotokey <> true then // 데이타가 db에 존재하지 않는 경우 추가
begin
Table1.Append;
Table1.FieldByName('Num').value := strtoint(edit1.Text);
Table1.FieldByName('Name').value := edit3.Text;
Table1.FieldByName('PG').value := strtoint(edit2.Text);
Table1.FieldByName('SG').value := strtoInt(edit4.Text);
Table1.Post;
End
else
begin
Table1.Edit; // 데이타가 db에 존재하는 경우 수정
Table1.FieldByName('Name').value := edit3.Text;
Table1.FieldByName('PG').value := strtoint(edit2.Text);
Table1.FieldByName('SG').value := strtoInt(edit4.Text);
Table1.Post;
End;
이해가 되실지 모르겠네요!!~~
그럼...이만...