Q&A

  • db에 입력후 아래와 같은 에러 메시지가 뜹니다. 한번 봐주세요..
안녕하세요..



그냥 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;



3  COMMENTS
  • Profile
    심심해서 2000.03.30 01:33
    이수정 wrote:

    > 안녕하세요..

    >

    > 그냥 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;



    이해가 되실지 모르겠네요!!~~



    그럼...이만...















  • Profile
    류종택 2000.03.30 01:33
    Refresh를 사용하려면..

    PK가 있어야만 가능하다는 이야기입니다..

    그리고 입력맞다 Refresh를 할 필요가 있나요??

    파라독스와 같은 데이타베이스를 사용하신다면..

    아예 필요없는 부분이네요..





    From 류..



    이수정 wrote:

    > 안녕하세요..

    >

    > 그냥 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;

    >

  • Profile
    신 기종 2000.03.30 01:31
    이수정 wrote:

    > 안녕하세요..

    >

    > 그냥 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;

    >



    코딩엔 문제가 없습니다..

    근데..Insert 한 Table에 primary key가 설정 되어 있는거 같습니다.

    근데..primary key로 설정된 필드에 같은 값의 레코드가 입력되어서

    Primary key로 설정된 필드에는 중복된 값이 입력되면 그런 에러가

    나더라 구요..

    Table을 볼수 있었으면 더 정확히 알수 있겠죠?



    • 이수정
    • 2000.03.30 03:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 03:35
      TList, TListBox, TListView, ...등에서 현재 가지고 있는 아이템의 범위를 벗어난 인덱스를 참조할때 일...
    • nilriri
      2000.03.30 03:33
      이수정 wrote: > Project chat.exe raised exception class EListError with message > > 'List index...
    • 정형모
    • 2000.03.30 03:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2000.03.30 04:10
      정형모 wrote: > DBGridH에서 마지막에 Row를 추가하여 합계를 표현할수 > 있는지..... > 아시는분 급...
    • 2000.03.30 05:07
      id.text := DBGrid1.fieldbyname('id').value; name.text := DBGrid1.fieldbyname('name').valu...
    • nilriri
      2000.03.30 03:15
      이수정 wrote: > 안녕하세요.. > > 1) query1.open; 하고.. > 2) query1.Locate('id', 'leesj', [loCa...
    • 이수정
      2000.03.30 03:24
      nilriri wrote: > 이수정 wrote: > > 안녕하세요.. > > > > 1) query1.open; 하고.. > > 2) query1.L...
    • nilriri
      2000.03.30 03:37
      지금당장 컴을 리부팅 하시길... 메모리 부족에러인듯... 'Insufficient memory (잘못된, 부적절한의...
    • nambada
    • 2000.03.30 03:01
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송정환
    • 2000.03.30 02:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri
      2000.03.30 02:53
      송정환 wrote: > 테이블 컴포넌트을 이용해서 데이타를 억세를 하고 있는데.. > 테이블 컴포넌트의 filte...
    • 최석기
      2000.03.30 03:40
      양동욱 wrote: > 안녕하세요. > 델파이 초보입니다. > 제가 원하는 것은 > 하드에 있는 파일을 플로피 ...
    • nilriri
      2000.03.30 03:11
      김진호 wrote: > 정해진 한 컴포넌트에서만 키보드의 화살표키(방향키)를 못쓰게 하려면 어떻게 해야 되나...
    • nilriri
      2000.03.30 04:00
      조유정 wrote: > 퀵리포트 사용시 처음페이지와 다르게 페이지 footer길이를 조정하고 싶은데 조정방법이...
    • 2000.03.30 01:49
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 2000.03.30 01:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 초보
    • 2000.03.30 01:33
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 01:54
      폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다. 에러가 날 이유가 없는데요....
    • 초보
      2000.03.30 02:33
      최용일 wrote: >폼이 생성될때 (OnCreate)에도 SaveDialog1.Execute를 실행할 수 있습니다. >에러가 날...
    • 최용일
      2000.03.30 02:35
      이상하네요 저는 잘 되기만 하는데... 혹시 SaveDialog1을 동적으로 생성했던거 아닌가요? 즉, 폼위에 ...
    • 초보
      2000.03.30 03:30
      최용일 wrote: > 이상하네요 저는 잘 되기만 하는데... > > 혹시 SaveDialog1을 동적으로 생성했던거 ...
    • 이수정
    • 2000.03.30 01:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 심심해서
      2000.03.30 01:33
      이수정 wrote: > 안녕하세요.. > > 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든...
    • 류종택
      2000.03.30 01:33
      Refresh를 사용하려면.. PK가 있어야만 가능하다는 이야기입니다.. 그리고 입력맞다 Refresh를 할 필요가...
    • 신 기종
      2000.03.30 01:31
      이수정 wrote: > 안녕하세요.. > > 그냥 Edit를 사용하여 입력하기는 했습니다. 제가 DB에 좀 약하거든...
    • chobo
    • 2000.03.30 01:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      2000.03.30 01:33
      안녕하세요. 문자열의 바이트수 얻으려면 한영구분없이 Length(Str)을 이용하면 됨다.. ByteToCh...
    • 이빈
    • 2000.03.30 00:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 유수
      2000.03.30 01:17
      안녕하세요. is for delphi 경우 Delphi로 제작된 프로그램 배포에 맞게 커스터마이즈 되어 있져.....
    • 임형호
      2000.03.30 01:02
      이빈 wrote: > installshield.Professional6.0과 > installshieldExpress Custom Edition for Delphi > ...
    • 서경철
    • 2000.03.30 00:33
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 01:45
      아마도 디버거가 등록이 되지 않은것 같군요.. windowssystem에 있는 RegSvr32.exe를 이용해서 등록해주...
    • 유수
      2000.03.30 01:11
      헐헐.. 말 그대로 디버거 커널이 등록이 안되었습니다. regsvr32를 이용해 직접 레지스트리에 등...
    • 최명관
    • 2000.03.30 00:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 유수
      2000.03.30 01:05
      ExtractFileName은 확장자까지 모두 다 가져와여.. 그러니깐, ExtractFileExt를 응용해 함수를 한...
    • 최용일
      2000.03.30 00:58
      ExtractFileName는 파일이름과 확장자를 포함한 이름을 돌려주는것이 맞습니다. 아래와 같이 하시면 확...
    • 강인규
      2000.03.30 00:05
      DBEdit는 DataSource와 연결합니다. DataSource는 Table이나 Query와 연결되구요. DBEdit는 DBGrid나 다...
    • 정거장
      2000.03.30 00:03
      이수정 wrote: > 안녕하세요.. > > DBEdit 속성 저장창에서는 왜 테이블 연결이나 그런것이 없나요? ...
    • 한익섭
    • 2000.03.29 23:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.03.30 02:07
      한익섭 wrote: > 안녕하세요^^ > 음.. 예전에 많았던.. 바탕화면이나.. 프로그램에서 돌아댕기는.... > ...