Q&A

  • 쿼리를 써서 디비그리드에서 다중삭제 방법 좀..<급함>
안녕하세요...



몇번이나 글을 올렸는데 답변이 없어서 다시올립니다...

테이블을 써서 하면 쉽게 되지만 지금은 쿼리를 써서 작업을 했기

때문에 쿼리에서 다중삭제를 해야 됩니다..



알고 계시는 고수분들께서는 빠른 답변좀 부탁드리겠읍니다...



꼭좀 부탁드립니다...



델초보...^^

4  COMMENTS
  • Profile
    성호종 2000.07.07 03:03
    원령 wrote:

    다중삭제라는 단어의 정확한 의미를 판단하기가 어렵네요.

    일단 Delphi는 Join된 query는 DBGrid에서 삭제할수 없습니다. Edit도 안되구요.

    sql에서 delete를 쓰셔야 할것같네요. 아니면 updatesql 콤포넌트를 쓰시던지(그래도 delete를 쓰시는건 마찬가지네요)

    --query1.sql.text := 'delete from 테이블명 where 조건';

    DBGrid에서 정이 삭제를 하시려면 grid에 이벤트를 활용하셔서 delete sql을 실행하시고 enablecontrols을 하시는편이 좋지 않을까 싶네요

    질문의 요지를 정확히 파악못해서 답변이 맞는지 모르겠네요.



    > 안녕하세요...

    >

    > 몇번이나 글을 올렸는데 답변이 없어서 다시올립니다...

    > 테이블을 써서 하면 쉽게 되지만 지금은 쿼리를 써서 작업을 했기

    > 때문에 쿼리에서 다중삭제를 해야 됩니다..

    >

    > 알고 계시는 고수분들께서는 빠른 답변좀 부탁드리겠읍니다...

    >

    > 꼭좀 부탁드립니다...

    >

    > 델초보...^^

  • Profile
    원령 2000.07.07 03:18


    > > 안녕하세요...

    > >

    > > 몇번이나 글을 올렸는데 답변이 없어서 다시올립니다...

    > > 테이블을 써서 하면 쉽게 되지만 지금은 쿼리를 써서 작업을 했기

    > > 때문에 쿼리에서 다중삭제를 해야 됩니다..

    > >

    > > 알고 계시는 고수분들께서는 빠른 답변좀 부탁드리겠읍니다...

    > >

    > > 꼭좀 부탁드립니다...

    > >

    > > 델초보...^^



    다시설명을 드릴께요..



    다중선택이란건 멀티실렉트를 해서 선택된것을 한꺼번에 지운다는것입니다..

    함더 답변을 올려주세요...

    지송함다. ^^

  • Profile
    문홍철 2000.07.07 04:16
    >

    > 다중선택이란건 멀티실렉트를 해서 선택된것을 한꺼번에 지운다는것입니다..

    > 함더 답변을 올려주세요...

    > 지송함다. ^^



    몇가지 확인을 먼저 하겠슴당.. ~.*!

    TQuery에서

    RequestLive := True 이겠죠. ?

    CachedUpdates := True 입니까..?

    db가 Local과 Server에 따라 틀리지만 cach도 True로

    해주십오.. Please..! Lock때문에 그러그던요..



    그리고 조인을 했거나 함수를 썼거나.

    순수한 하나의 테이블입니까..? 말이 맞나.

    순수한 하나의 테이블의 경우는 그냥 통과... 왜 순수하니까..? ~.~



    그리고 조인을 했거나.함수를 썼거나 했을때

    Group by나 그룹함수를 썼을 경우는 책임못짐 그건 왜그런지 이해가 가실검니다.

    UpdateSQL 하나 폼에 같다놓고 Query의 UpdateObject와 연결 시키십시오..

    그리고 updateSql을 더블클릭 해서 테이블을 선택하고 키를 선택하십시오

    키는 아시겠죠 그라고 delete만 할거면 update field는 무의합니다..

    그래도 선택하고 싶으시면 아무거나 선택하시고요..! ~.*!

    그리고 generate SQL을 선택하시고 ok하시고 나오면 됩니다.

    무슨 일이 일어났나 궁금하시면, SqL tab을 선택하시거나

    Object inspector에서 내용을 확인하세요.. 별거 없지요..!



    여기까지가 준비 단계입니다. 삭제 할려고 하는 테이블이 2개 이상이면

    또 단계가 필요합니다.



    그러고 나서



    with dbgrdMain, qryMain do

    begin

    if(SelectedRows.Count > 0) then //그리드 선택 건수확인

    begin

    DisableControls; //링크차단

    for i := SelectedRows.Count - 1 downto 0 do

    begin

    //그리드의 선택된 아이템은 포인터문자 이므로..? 맞나

    //그래서 포인터로 타임캐스팅 합니다.

    GotoBookMark(Pointer(SelectedRows.Items[i]));

    Delete; //그위치에 왔으므로 삭제

    end;

    EnableControls; //링크복구



    with dbMain do

    begin



    if(InTransaction) then Rollback; //혹시나

    try

    ApplyUpdates; //쿼리 적용

    Commit; //데이타베이스

    except

    on E : EDBEngineError do

    begin

    Rollback; //일났으니

    //여기는 알아 해줘요..잉...

    EXIT;

    end;

    end;

    CommitUpdates; 쿼리의 캐쉬를 비워줌

    //끝납습니다.....~.~



    end;



    end;



    end;



    이러면 끝납니다. 맞나...

    도움이 되었으면 하네요

    그런데 아니면 어쩌지....~.*!



    그래도 즐코하세요



    헥 힘들다 밥묵으로 가야지... 저녁들 맛있게 드세요...~.~



















  • Profile
    원령 2000.07.07 22:58
    내용무

    • 문홍철
      2000.07.07 20:53
      > > 문제는 추가시키면 필드에 초기값이 안들어가여..-- > > True든 False든 디폴트 값을 넣고 시픈데...
    • 임형호
      2000.07.07 09:55
      타락천사 wrote: > 안녕하세여..타락임다...^^ > > 모두덜 더운 여름에 잘 지내시져?? > > 요즘 디...
    • 구창민
      2000.07.07 09:28
      타락천사 wrote: > 안녕하세여..타락임다...^^ > > 모두덜 더운 여름에 잘 지내시져?? > > 요즘 디...
    • 구창민
      2000.07.07 04:33
      사발우성 wrote: > > 흠 다름이 아니라엽 디그그리드에서 어떤 셀이라구 해야 하나 아님 컬럼이라구 ...
    • 궁금타
    • 2000.07.07 03:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2000.07.07 08:07
      웹브라우저 컴포를 뭐 쓰셨는지는 모르겠지만 ActiveX WebBrowser는 IE와 같다고 생각하시면 됩니다. 스...
    • 델초보
    • 2000.07.07 03:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 아리엘
      2000.07.07 07:17
      델초보 wrote: > 소켓 연결을 하던 도중... > window socket error가 떴습니다... > 10048이었는데요......
    • 이경문
      2000.07.07 08:10
      포트번호 1024번까지는 쓰지말라는 권고안이 있습니다. 이후에 쓰이는 포트번호도 재수없으면 다른 포트번...
    • 여노기
    • 2000.07.07 03:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김범석
      2000.07.07 23:59
      QuickReport 버젼을 확인해보세요 3.0.3 이면 3.0.4 또는 3.0.5로 업그레이드 하세요 여노기 wrot...
    • 돌멩이
      2000.07.07 04:53
      여노기 wrote: > * 사용환경 : 델파이4 / Windows 98 > > 퀵레포트에서 > 그룹별로 구분해서 출력을 ...
    • 유상민
    • 2000.07.07 03:00
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2000.07.07 08:12
      프로그램에 버그가 있어서 그럴 겁니다. 컴포에 문제가 있을 수도 있고 Access Violation같은 버그와 같...
    • 사랑하기
      2000.08.05 10:48
      하이.. 이번에 저도 겪었었는데.. 무사히 해결해서.. 아이콘 파일이 혹시나 256 color 이상이 아닌지? ...
    • 사랑하기
      2000.08.05 10:48
      하이.. 이번에 저도 겪었었는데.. 무사히 해결해서.. 아이콘 파일이 혹시나 256 color 이상이 아닌지? ...
    • 성호종
      2000.07.07 02:50
      아리엘 wrote: 간단하게 써머리 지우고 페이지푸터 쓰면 되요~ > 감사해요 ^_^ > 지금 레포트에서 ...
    • 아리엘
      2000.07.07 07:38
      문제는 소계를 내야 한다는것이죠 ^^; 소계를 내려면 디테일 밴드뒤에 차일드밴드를 붙여야 하는데 이건 ...
    • 성호종
      2000.07.10 23:30
      아리엘 wrote: 진작에 말씀을 해주시죵~ 소계를 내는 부분을 레포트에서 모두 해결하시려고 하면 무쟈게 ...
    • 기본
    • 2000.07.07 02:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.07 02:58
      기본 wrote: 우선 프로그램에서 Update와 Delete는 피하는것이 좋습니다. 만약 update 또는 delete를 하...
    • 임형호
      2000.07.07 02:47
      델파초짜. wrote: > > 제가 듣기로는 RxLib 에서 지원하는 TrayIcon 컴포넌트를 이용하면.. > > ...
    • 무명
      2000.07.07 02:50
      델파이걸 wrote: > 메인폼을 실행하고나서 생기는 스크롤바 말입니다. > > 음 그러니깐요. > 폼위에다...
    • 원령
    • 2000.07.07 02:19
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 성호종
      2000.07.07 03:03
      원령 wrote: 다중삭제라는 단어의 정확한 의미를 판단하기가 어렵네요. 일단 Delphi는 Join된 query는 DB...
    • 원령
      2000.07.07 03:18
      > > 안녕하세요... > > > > 몇번이나 글을 올렸는데 답변이 없어서 다시올립니다... > > 테이블을 ...
    • 문홍철
      2000.07.07 04:16
      > > 다중선택이란건 멀티실렉트를 해서 선택된것을 한꺼번에 지운다는것입니다.. > 함더 답변을 올려주...
    • 원령
      2000.07.07 22:58
      내용무
    • 아리엘
    • 2000.07.07 02:06
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 아세만
      2000.07.07 04:32
      아리엘 wrote: > 안녕하세요.. > > 첫번
    • 조규춘
      2000.07.07 02:28
      아리엘 wrote: > 안녕하세요.. > > 첫번
    • 손상수
    • 2000.07.07 01:47
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 문홍철
      2000.07.07 03:06
      손상수 wrote: > 테이블에서 읽어온 데이타를 dbgrid1에 뿌려준후 업데이트하는 프로그램입니다. > 예를 ...
    • 손상수
      2000.07.07 04:34
      감사합니다. 오늘 문홍철님한테 많은 도움을 받는군요.. 복 받으십시요...^^ 그런데 with Query2 do ...
    • 문홍철
      2000.07.07 06:39
      손상수 wrote: > with Query2 do > begin > if not(IsEmpty) then > begin > Locate(Field7.F...
    • 손상수
      2000.07.07 21:13
      1
    • 이재원
      2000.07.07 17:11
      기냥 OnKeyDown Event를 쓰시면 될거같은디요... Label1.Caption:=IntToStr(Key); Down 은 키코...
    • 조규춘
      2000.07.07 02:13
      델파초짜. wrote: > if HPrevInst 0 then > ShowMessage('프로그램이 실행되어 있습니다.') > else ...
    • 델파초짜.
      2000.07.07 02:25
      답변 감사합니다.. 늘 조규춘님의 도움을 많이 받네요... 그럼. 즐거운. 하루 되세요.. 이만.. 조...
    • 최용일
      2000.07.07 01:45
      안녕하세요. 최용일입니다. HPrevInst는 뭔가요? 아마도 비베하시는 분같은데... 델파이에서는 그렇게 ...
    • 호야
    • 2000.07.07 01:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.07 01:33
      안녕하세요. 최용일입니다. TOpenDialog를 사용할 때 FileName속성에 파일이 들어오잖아요... Extrac...
    • 조규춘
      2000.07.07 01:48
      최용일 wrote: > 안녕하세요. 최용일입니다. > > TOpenDialog를 사용할 때 FileName속성에 파일이 들어...
    • 조규춘
      2000.07.07 01:28
      호야 wrote: > OpenDialog를 이용하는데 파일이있는 경로(C:mywork)를 > 알아보려고 하는데 안되네요. >...