Q&A

  • 에러내역을 모르 겠습니다.
세금계산서를 만들려고 하는데 초보라 당황스럽습니다.


질문의 요지는 입력은 되는데 아래와 같은 에러메시지 가 나옵니다.
[key violation.
violation of primary or unique key constraint "gl_main" on table "gl_main"]



[테이블내역입니다]
CREATE TABLE "GL_MAIN"
(
  "GL_CODE"        VARCHAR(14) NOT NULL,
  "GL_SANGHO"        VARCHAR(30),
  "GL_CEONAME"        VARCHAR(30),
  "GL_SAUPCODE"        VARCHAR(16),
  "GL_ADDRES"        VARCHAR(45),
  "GL_YEARS"        VARCHAR(2),
CONSTRAINT "GL_MAIN" PRIMARY KEY ("GL_CODE")
);

[GL_CODE] 는 다른 테이블에서 참조할 항목입니다.
참고로 인터베이스를 사용합니다.

[실행코드입니다]
procedure TForm1.Button1Click(Sender: TObject);
begin
  If (GLSangHO.Text='')or (GLCeoName.Text='')or (GLSaUpCode.Text='')or (GLAddres.Text='')or (GLYears.Text='') then
  begin
    ShowMessage('등록 항목이 빠졌습니다');
    Exit;
  end;    
    with Query1 do
    begin   //거래처 내역저장
      close;
      sql.Clear;
      sql.Add('Insert Into Gl_Main (Gl_code, Gl_SangHO, Gl_CeoName, Gl_SaUpCode, Gl_Addres, Gl_Years) ');
      sql.Add('values(:p0, :p1, :p2, :p3, :p4, :p5)' );
      Params[0].AsString:=UGName.Text;
      Params[1].AsString:=GLSangHo.Text;
      Params[2].AsString:=glCeoName.Text;
      Params[3].AsString:=glSaUpCode.Text;
      Params[4].AsString:=glAddres.Text;
      Params[5].AsString:=glYears.Text;
      ExecSql;
      Query1.Close;
      Query1.Open;
    end;
    GPPuMMokName.SetFocus;
    ShowMessage('입력되었습니다');
end;


1  COMMENTS
  • Profile
    지금은 선천 마감중.. 2005.03.14 20:19


    메세지 상으로 하면 중복된 키값을 입력하려 날때 나오는 에러이구요...

    소스상으로 보면 insert 문을 넣구 ExecSQL 한다음에
    그냥 오픈하려 하네요....

    우선 Insert문을 실행한다음 Query1의 SQL문장을 Clear 한다음 select하는 문장을 넣어서 open 해야 합니다.

    select 문장은 open으로 하면 열리구요 그외 insert, update, delete 문은 execSQL 로 실행하면 됩니다.

    도움이 되시길...