Q&A

  • 테이블에 필드를 추가해도 델파이가 인식을 못합니다.
안녕하세요.



약 1년반전에 운송사업을 하는 형님 부탁으로 운송관리 프로그램을 만들어 드렸는데요.

당시엔 데이터베이스를 공부한다는 생각으로 한번 해 봤습니다.



근래에 필드를 추가해 달라고 해서 수정을 할려고 합니다.

기존 테이블에 필요한 필드 두 개를 데이터베이스 데스크탑을 이용하여 추가하였습니다.



이렇게 테이블을 수정했지만 정작 델파이로 들어와서 이 필드에 자료를 저장하려고 하면 저장이 되질 않네요.

에러 메시지는 필드를 찾을 수 없다는 겁니다.



정확한 에러 메시지는 다음과 같습니다.

'Project Trucky.exe raised exception class EDatabaseError with message 'Table4: Field 'UnderTakeYN' not found.'



여기서 Trucky.exe는 프로그램 파일명이고요, Table4는 필드를 추가한 테이블입니다.

또, UnderTakeYN은 추가한 필드 중에 앞에 있는 필드명입니다.



테이블은 패러독스로 구성했고, 델파이는 4.0을 사용하고 있습니다.



답변을 해 주시면 고맙겠습니다.



그럼 좋은 시간들 되세요.

4  COMMENTS
  • Profile
    류종택 2001.08.07 09:02
    에러발생 경로가 정확하지 않아서.

    그냥 유추해서 생각해보면..

    혹시 필드 에디터를 사용하시고..

    그 필드를 에디터에 추가해주시지 않은 건 아니신지요??





    From 류..



    이길환 wrote:

    > 안녕하세요.

    >

    > 약 1년반전에 운송사업을 하는 형님 부탁으로 운송관리 프로그램을 만들어 드렸는데요.

    > 당시엔 데이터베이스를 공부한다는 생각으로 한번 해 봤습니다.

    >

    > 근래에 필드를 추가해 달라고 해서 수정을 할려고 합니다.

    > 기존 테이블에 필요한 필드 두 개를 데이터베이스 데스크탑을 이용하여 추가하였습니다.

    >

    > 이렇게 테이블을 수정했지만 정작 델파이로 들어와서 이 필드에 자료를 저장하려고 하면 저장이 되질 않네요.

    > 에러 메시지는 필드를 찾을 수 없다는 겁니다.

    >

    > 정확한 에러 메시지는 다음과 같습니다.

    > 'Project Trucky.exe raised exception class EDatabaseError with message 'Table4: Field 'UnderTakeYN' not found.'

    >

    > 여기서 Trucky.exe는 프로그램 파일명이고요, Table4는 필드를 추가한 테이블입니다.

    > 또, UnderTakeYN은 추가한 필드 중에 앞에 있는 필드명입니다.

    >

    > 테이블은 패러독스로 구성했고, 델파이는 4.0을 사용하고 있습니다.

    >

    > 답변을 해 주시면 고맙겠습니다.

    >

    > 그럼 좋은 시간들 되세요.

  • Profile
    이길환 2001.08.08 02:59
    류종택 wrote:

    > 에러발생 경로가 정확하지 않아서.

    > 그냥 유추해서 생각해보면..

    > 혹시 필드 에디터를 사용하시고..

    > 그 필드를 에디터에 추가해주시지 않은 건 아니신지요??

    >



    안녕하세요.

    먼저 답변 주셔서 감사합니다.

    필드 에디터라고 말씀하신 것이 혹시 델파이내의 컬럼 에디터를 말씀하시는 건지요?

    만약 컬럼 에디터를 말씀하신 것이라면, 이것하고는 상관이 없습니다.

    실제 데이터 액세스는 코드를 이용해서 한 것이거든요.



    if not (CBUnderTake.Text = '') then

    DMTruck.Table4.FieldByName('UnderTakeYN').AsString := CBUnderTake.Items[CBUnderTake.ItemIndex];



    여기서 CBUnderTake는 콤보박스입니다.



    좀 참고가 될까 하여 적습니다.

    과거 이 프로그램 작성하고 난 후에 피씨에 문제가 생겨서 포맷하고 윈도를 재설치했습니다. 이와 관련하여 이번에 프로그램 수정을 위해 DB가 저장된 디렉토리를 다시 BDE를 이용하여 앨리어스를 지정했고요.

    이외에는 수행한 내용이 없는데, 혹시 이 과정말고 추가로 해야 하는 작업이 있는 건 아닌지요? 즉, 포맷한 시스템에 앨리어스 지정하는 것 말고 추가해야 하는 사항 말입니다.



    하옇튼 데이터베이스 데스크탑에서 추가한 필드는 데이터베이스 데스크탑 내에서는 잘 보입니다. 또한 수정 및 추가도 잘 되고요.

    델파이 내의 SQL Explorer를 이용하여 테이블을 탐색해도 추가한 필드가 잘 보이거든요.

    문제는 델파이 자체에서 수정된 테이블을 인식하지 못하고 과거 테이블만을 고집한다는 것이지요.



    지금 이것때문에 상당히 갑갑하네요.

    시간은 점점 지나가고...



    답변 주시면 감사하겠습니다.

  • Profile
    류종택 2001.08.08 04:23
    TDataset을 더블클릭하면..

    나오는 것이 Field Editor입니다..

    여기서 아무것도 지정안하면 아무 상관없지만..

    하나라도 필드를 지정해 버리면..

    지정안된 필드는 사용할 수가 없습니다..





    From 류..



    이길환 wrote:

    > 류종택 wrote:

    > > 에러발생 경로가 정확하지 않아서.

    > > 그냥 유추해서 생각해보면..

    > > 혹시 필드 에디터를 사용하시고..

    > > 그 필드를 에디터에 추가해주시지 않은 건 아니신지요??

    > >

    >

    > 안녕하세요.

    > 먼저 답변 주셔서 감사합니다.

    > 필드 에디터라고 말씀하신 것이 혹시 델파이내의 컬럼 에디터를 말씀하시는 건지요?

    > 만약 컬럼 에디터를 말씀하신 것이라면, 이것하고는 상관이 없습니다.

    > 실제 데이터 액세스는 코드를 이용해서 한 것이거든요.

    >

    > if not (CBUnderTake.Text = '') then

    > DMTruck.Table4.FieldByName('UnderTakeYN').AsString := CBUnderTake.Items[CBUnderTake.ItemIndex];

    >

    > 여기서 CBUnderTake는 콤보박스입니다.

    >

    > 좀 참고가 될까 하여 적습니다.

    > 과거 이 프로그램 작성하고 난 후에 피씨에 문제가 생겨서 포맷하고 윈도를 재설치했습니다. 이와 관련하여 이번에 프로그램 수정을 위해 DB가 저장된 디렉토리를 다시 BDE를 이용하여 앨리어스를 지정했고요.

    > 이외에는 수행한 내용이 없는데, 혹시 이 과정말고 추가로 해야 하는 작업이 있는 건 아닌지요? 즉, 포맷한 시스템에 앨리어스 지정하는 것 말고 추가해야 하는 사항 말입니다.

    >

    > 하옇튼 데이터베이스 데스크탑에서 추가한 필드는 데이터베이스 데스크탑 내에서는 잘 보입니다. 또한 수정 및 추가도 잘 되고요.

    > 델파이 내의 SQL Explorer를 이용하여 테이블을 탐색해도 추가한 필드가 잘 보이거든요.

    > 문제는 델파이 자체에서 수정된 테이블을 인식하지 못하고 과거 테이블만을 고집한다는 것이지요.

    >

    > 지금 이것때문에 상당히 갑갑하네요.

    > 시간은 점점 지나가고...

    >

    > 답변 주시면 감사하겠습니다.

  • Profile
    이길환 2001.08.08 07:16
    먼저 감사의 말씀을 드립니다.

    지적해주신대로 Table4를 더블클릭하니 옛날에 필드를 지정한게 나타나네요. 여기서 오른쪽 마우스 버튼을 누르고 "Add Fields.."를 누르니 그동안 나타나지 않던 필드가 뜨네요. 이 필드들을 추가하니 아무 문제없이 프로그램이 작동합니다.



    감사합니다.

    좋은 시간되십시오.



    류종택 wrote:

    > TDataset을 더블클릭하면..

    > 나오는 것이 Field Editor입니다..

    > 여기서 아무것도 지정안하면 아무 상관없지만..

    > 하나라도 필드를 지정해 버리면..

    > 지정안된 필드는 사용할 수가 없습니다..