Q&A

  • 지운 레코드가 그냥 살아 있을때 어떡해요....
이런 경우 어떡해요....

만약 kkk.dbf 가 있다는 가정하에 인덱스 화일을 k_111.ndx로 하였을때 지우거나 그냥

놔두어도, 다시 kkk.dbf의 또다른 인덱스를 k_222.ndx로 다른 작업을 하면 분명 먼저 인덱스에는 특정레코드가 있는데 두 번째 인덱스에는 그 레코드가 보이질 않아요...

데이타 베이스는 한 화일에 한번의 인데스 밖에는 걸수 없는지요...

만약 한 화일에 독립적인 인덱스를 여러개 걸수 있다면 알려주세요...

만학도라 그런지 진도를 나가지 못하고 있습니다.

도움 주시면 감사하겟습니다.

그럼 이만........



2  COMMENTS
  • Profile
    이재식 1999.10.20 03:48
    김주성 wrote:

    > 이런 경우 어떡해요....

    > 만약 kkk.dbf 가 있다는 가정하에 인덱스 화일을 k_111.ndx로 하였을때 지우거나 그냥

    > 놔두어도, 다시 kkk.dbf의 또다른 인덱스를 k_222.ndx로 다른 작업을 하면 분명 먼저 인덱스에는 특정레코드가 있는데 두 번째 인덱스에는 그 레코드가 보이질 않아요...

    > 데이타 베이스는 한 화일에 한번의 인데스 밖에는 걸수 없는지요...

    > 만약 한 화일에 독립적인 인덱스를 여러개 걸수 있다면 알려주세요...

    > 만학도라 그런지 진도를 나가지 못하고 있습니다.

    > 도움 주시면 감사하겟습니다.

    > 그럼 이만........

    >



    이재식 Wrote :

    안녕하세요?

    표현이 재미있습니다.



    먼저 질문의 요지가 잘 파악이 안되요.

    하나의 DBF에대해 여러개의 인덱스를 잡았군요.

    k_111, k_222.

    처음에는 k_111를 사용하다가 중지하고 k_222로 인덱스를

    잡아서 사용했는데, 전 인덱스 사용과 현 인덱스 사용에서

    레코드상태에 차이가 있다는 말씀인가요?



    결국 실행시에 기존에 만들어진 인덱스를

    다이나믹하게 변경해서 작업을 한다는 것인데,

    어떻게 하셨는지 그 코딩을 보았으면 하는데요...



    그리고, 그 인덱스는 어떤 구성인지도 궁금합니다.

    가령, 하나의 필드로 이루어진 인덱스인지, 아니면

    여러개의 필드가 복합으로 된 인덱스인지도 알고 싶고요...



    아무튼, 귀하께서 말씀하신 에러는 말 그대로 에러입니다.

    그 에러가 인덱스 사용으로생긴 에러인지, 아니면 다른 무엇때문인지

    위 설명으론 판단하기가 곤란합니다.



    그리고, 하나의 DB는 여러개의 인덱스를 가질 수 있지만,

    동시에 독립적인 여러 인덱스를 가질 수는 없습니다. (현재 제가 알기로는)



    사실상 독립적인 여러 인덱스는 불필요하죠.

    인덱스를 그렇게 남용(?)하면 오히려 속도저하가 초래되는데요,



    오히려 복합필드로 구성된 인덱스를 사용하시는것이

    휠씬 낫습니다.



    한번 소스를 저에게 보내주시면...



    그리고, 어느 부분에서 문제가 발생하는지에 대해서도 설명을...







  • Profile
    배불뚝 1999.10.20 03:23
    김주성 wrote:

    > 이런 경우 어떡해요....

    > 만약 kkk.dbf 가 있다는 가정하에 인덱스 화일을 k_111.ndx로 하였을때 지우거나 그냥

    > 놔두어도, 다시 kkk.dbf의 또다른 인덱스를 k_222.ndx로 다른 작업을 하면 분명 먼저 인덱스에는 특정레코드가 있는데 두 번째 인덱스에는 그 레코드가 보이질 않아요...

    > 데이타 베이스는 한 화일에 한번의 인데스 밖에는 걸수 없는지요...

    > 만약 한 화일에 독립적인 인덱스를 여러개 걸수 있다면 알려주세요...

    > 만학도라 그런지 진도를 나가지 못하고 있습니다.

    > 도움 주시면 감사하겟습니다.

    > 그럼 이만........

    >



    저는 이렇게 했습니다.

    일단 데이타베이스데스트탑에서 해당 테이블을 선택한후 restruct를 누르면 그 테이블의 구조가 나오지요. 오른쪽 리스트위에 index를 만들수 있도록 버튼이 있어요.

    definition을 누르면 왼쪽에 컬럼이 많이 나와요.

    그럼 그중 인덱스로 원하는 컬럼을 선택하고 ok를 하면 그 컬럼이름으로 된 인덱스가 하나 생기지요. 그렇게 계속 만든 다음 저장하고 나가면 그 테이블이름.mdx 화일이 생깁니다. 그건 하나의 화일에 여러 인덱스정보를 담은 화일이예요.

    그런 다음 어플리케이션 코딩할 때 사용할 인덱스명을 직접 넣으면 돼요.

    예를 들어

    table1.indexname := 'emp_name';

    그럼 실행중에도 바뀌거든요....

    더 이상은 저도 잘 모르겠습니다. 도움이 되실지 모르겠네요...