Q&A

  • <질문>DBgrid에서 선택된 행 삭제방법 알켜줘여!.
Q & A를 쭉 검색해 봤는데여 제가 원하는 답이 없어서여..

(짧은 실력이라 답을 못찾은 건지~)



암튼 제가 필요한건여..

간단해여...Qeury 하구 DBgrid를 쓰구 있는데여...

삭제를 할려다보니깐 SQL문에서 필요한건 Unique key가 필요하구

Unique key를 만들려다 보니깐 잘안되구여...

아래에 이렇게 코딩하니깐 삭제한다음 다시 입력하니깐

중복이 발생하더라구여...그래서 실패





if Query1.RecordCount = 0 then Edit11.Text := '0'

else

begin

Edit11.Text := IntToStr(Query1.RecordCount-1);

Edit11.Text := IntToStr(StrToInt(Edit11.Text) + 1);

Next;

end;



그래서 어디서 듣기로는 DBgrid에서 행전체 클릭한담에

button action주믄 삭제가 된다는데...



옵션주는법부터 코딩까지 알려주세여...

부탁입니다...

1  COMMENTS
  • Profile
    아기코알라 2001.05.31 08:09
    응가왕 wrote:

    > Q & A를 쭉 검색해 봤는데여 제가 원하는 답이 없어서여..

    > (짧은 실력이라 답을 못찾은 건지~)

    >

    > 암튼 제가 필요한건여..

    > 간단해여...Qeury 하구 DBgrid를 쓰구 있는데여...

    > 삭제를 할려다보니깐 SQL문에서 필요한건 Unique key가 필요하구

    > Unique key를 만들려다 보니깐 잘안되구여...

    > 아래에 이렇게 코딩하니깐 삭제한다음 다시 입력하니깐

    > 중복이 발생하더라구여...그래서 실패

    >

    >

    > if Query1.RecordCount = 0 then Edit11.Text := '0'

    > else

    > begin

    > Edit11.Text := IntToStr(Query1.RecordCount-1);

    > Edit11.Text := IntToStr(StrToInt(Edit11.Text) + 1);

    > Next;

    > end;

    >

    > 그래서 어디서 듣기로는 DBgrid에서 행전체 클릭한담에

    > button action주믄 삭제가 된다는데...

    >

    > 옵션주는법부터 코딩까지 알려주세여...

    > 부탁입니다...



    안녕하세요 아기코알라 입니다.

    (50번 답변하면 어린코알라로 승급하겠읍니다. 이제 4번째 답변이군요...하하하)





    님께서 사용하신 Recodercounter는 저는 잘 모르겠읍니다. 그걸 왜 사용하는지...

    그리고 고수님들의 말씀하시던데 RecoderCounter에 어떤 버그가 있다고 가능하면

    사용하지 말라고 하시더라구요...왜 그런지는 정확하게 모르겠지만...



    저는 Query, Datasource, UpdateSQL, DBGrid 컴포넌트등을 사용하고 있읍니다.



    Query에 Databasename, Datasource, 그리고 맨 아래의 UpdateSQL을 등록하고

    RequestLive인가 를 True로 그리고 Cachedupdate인가도 true로 설정을 해야합니다.



    그리고 UpdateSQL 컴포넌트를 더블 클릭하면 창이 하나 뜨지요...

    그곳에서 primary Key 필드를 하나 설정하고 Generate SQL인가요? 그 버턴을 누르면

    자동으로 Query문이 생성 되지요... 저장, 수정, 삭제 가 있지요..



    그리고 버턴 2개를 만들지요...

    하나는 " 저장" 버턴, 다른 하나는 "삭제"버턴을 만들지요..



    저장 버턴을 더불클릭하면 그곳에 코딩을 하면 됩니다.

    begin

    Query.Applyupdates;

    Query.commiteupdates;

    Query.close;

    Query.Open;

    end;



    그리고 삭제 버턴을 더블 크릭하면..

    begin

    Query.delete;

    end;



    이렇게 하면 DBGrid에 직접 Data를 입력하고 삭제 할 수 있읍니다..



    참 그리고 전 DB를 Paradox를 사용하는데.. Primary Key에 " * " 표시를 해두세요.

    Primary 필드에 중복된 데이타가 없으면 잘 되는데 그 필드에는 중복된 Data가 들어가면 에러가 뜹니다.



    그 필드에 중복된 Data를 입력하기 위해 저장 버턴을 누르면 중복된 데이타가 있다고

    하는 메제지를 띄워야 중복을 사전에 막을 수 있읍니다.



    그러기 위해서는 "예외처리"를 해야 합니다.



    Try

    .......

    except

    .......



    이 부분은 제가 정확하게 이해를 한 부분이 아니라서 검색을 해보시기 바랍니다.



    부족한 답변이나마 도움이 되셨으면 합니다.



    즐거운 코딩 하세요...