Q&A

  • Field 'Mst_actno' is not indexed ... 에러 고치는 방법?
늘 발생하는 에러는 아니구요.. 어쩌다 보면 나타납니다.

어떻게 하면, 나타는지도 아직 못잡았구요, 에러 메세지는

=> Field 'Mst_actno' is not indexed and cannot be modified 입니다..

어케하남...고수님들 빨리 좀 도와주세요...



//--------------------------------------------------------------------

procedure TFrm_Dechul.DBEdit4KeyPress(Sender: TObject; var Key: Char);

var

chk_code : string;

chk_code1 : string;

begin

if key = #13 then begin

key := #0;

chk_code := Trim(DBEdit4.Text);

chk_code1 := copy(DBEdit4.Text,1,8);

With DM_1.TB_Cust do begin

Cancel;

SetKey;

FieldByName('Cust_code').AsString := chk_code1;

GotoKey;

end;//end of with

if DM_1.TB_Cust.GoToKey then begin

with DM_1.TB_Mast do begin

cancel;

setkey;

FieldByName('Mst_actno').AsString := chk_code; <- 디버깅시 요기서 에러..

GotoKey;

if gotoKey then

Edit

else begin

Append;

DBEdit4.text := chk_code;

DBEdit1.Text := chk_code1;



end; //end of if

end;//end of with

end else

Frm_Custom := TFrm_Custom.Create(Application);

Frm_Custom.Showmodal;

Frm_Custom.Free;

DM_1.TB_cust.Open;

DBEdit4.SetFocus;

end;

end; //end of if

end;

//--------------------------------------------------------------------

1  COMMENTS
  • Profile
    박용철 2000.08.31 20:57
    "Field 'Mst_actno' is not indexed and cannot be modified "에러는 인덱스로 설정되지 않은 필드로 검색하여을 때 발생합니다.

    매번 발생하지 않은 이유는 "if DM_1.TB_Cust.GoToKey"가 True일 경우에만 발생할 겁니다.

    혹시, Secondary Key로 설정되었으면, Table의 IndexName을 바꿔주십시오.

    그럼, 이만.



    coolling wrote:

    > 늘 발생하는 에러는 아니구요.. 어쩌다 보면 나타납니다.

    > 어떻게 하면, 나타는지도 아직 못잡았구요, 에러 메세지는

    > => Field 'Mst_actno' is not indexed and cannot be modified 입니다..

    > 어케하남...고수님들 빨리 좀 도와주세요...

    >

    > //--------------------------------------------------------------------

    > procedure TFrm_Dechul.DBEdit4KeyPress(Sender: TObject; var Key: Char);

    > var

    > chk_code : string;

    > chk_code1 : string;

    > begin

    > if key = #13 then begin

    > key := #0;

    > chk_code := Trim(DBEdit4.Text);

    > chk_code1 := copy(DBEdit4.Text,1,8);

    > With DM_1.TB_Cust do begin

    > Cancel;

    > SetKey;

    > FieldByName('Cust_code').AsString := chk_code1;

    > GotoKey;

    > end;//end of with

    > if DM_1.TB_Cust.GoToKey then begin

    > with DM_1.TB_Mast do begin

    > cancel;

    > setkey;

    > FieldByName('Mst_actno').AsString := chk_code; <- 디버깅시 요기서 에러..

    > GotoKey;

    > if gotoKey then

    > Edit

    > else begin

    > Append;

    > DBEdit4.text := chk_code;

    > DBEdit1.Text := chk_code1;

    >

    > end; //end of if

    > end;//end of with

    > end else

    > Frm_Custom := TFrm_Custom.Create(Application);

    > Frm_Custom.Showmodal;

    > Frm_Custom.Free;

    > DM_1.TB_cust.Open;

    > DBEdit4.SetFocus;

    > end;

    > end; //end of if

    > end;

    > //--------------------------------------------------------------------