Q&A

  • 델파이를 시작하고 있습니다 .Query 사용문제등 질문
근래들어 델파이를 시작했는데요.  RadStudio2009를 써보고 있습니다.

바쁘신데 죄송합니다 궁금한것이 있어서 질문 4개만 할께요.

1. 델파이에서 많은 쿼리를 사용할때 Query콤포넌트  사용 형태
   TADOQuery 등을 사용해서 mySql연동 해보니까 잘되는데
   (DbExpress 는 libmysql 있는데도 에러가 나서요 어쩔수 없이 ADO해보니까 되서 씁니다 ㅠㅠ)

   보통 조회성 쿼리 말고 처리성 쿼리등을 해보려 할 때 (insert ,update 등등..)
   쿼리가 많을 경우에  보통 쿼리 수만큼 콤포넌트를 올려놓고 하시는지

   아니면 그냥 처리용 쿼리 콤포넌트는 하나만 두고
   실행해야될 시점의 버튼이나 이벤트에서 sql 프로퍼티 및 파라미터 프러퍼티를 clear 하고
   다시 add 해서  할때마다 execute하는것이 일반적인지 궁금합니다

   아니면 폼의 전역변수 배열등으로 쿼리및 파라미터등을 미리 정해두고 각각쿼리 실행시마다
   인자로 불러서 콤포넌트에 매핑을 하는지도 (이건 그냥 상상해봤어요)

   혹시 사용하는 쿼리 및 파라미터등을 세트로 만들어두고 실행할 수 있는 일반적으로 많이 쓰시는
   방법론이 있는지요 ? (요즘 프로젝트에서 사용하는 XML Query 형태처럼..)

2. 레포트 툴  선택 문제  
   제가 사용하는 델파이에는 RaveReport란게 있던데요
   (제가 아주 오래전에 델파이 1.0으로 작은 프로젝트를 해본기억이 있는데 ^^;)
   레포트 이걸로 하는데 별 문제가 없는지요 .  
   간단한거 구현해볼려고 하는데 왠지 솔루션이 커보여서요
   다른 더 쉽고 편한 많이들 쓰시는게 있는지 해서요

3. DBGrid 선택문제
   상용아닌 많이쓰는 그리드 콤포넌트 없나요 ? 그냥 DBGrid를 써야하나 고민이돼서...


4. 구버전 패키지나 콤포넌트 인스톨문제
   제가 잘몰라서 그러는데 dpk 파일이 델파이 패키지파일로 알고있는데 이거 인스톨 패키지로
   해보려니까 , 제 델파이가 버전이 높아서 그런지 bpl 파일만 찾고 저건 강제지정해도 안되드라구요
   다른 방법이 있는건가요
  


나름대로 구글이나 지식인 검색을 해봤는데
마땅한 답변이 없어서 여기 적게 됐습니다

너무 초보적인 질문이어서 죄송하구요

긴 질문 읽어주셔서 감사합니다

즐거운 하루 되세요

2  COMMENTS
  • Profile
    소울해커 2009.02.02 22:43

    1. 현재 쿼리수만큼 쿼리 컴포넌트를 올려놓은 프로그램을 분석/수정하고 있습니다.

    결론은 사람이 할짓이 못된다 이군요.

    본인이 만드는 거라면야 몇백개를 올려놓건 간에 본인이 그 용도를 알고 올려다놓은거니 문제 될 거 없습니다.

    단... 그걸 수정해야 될 일이 생기거나 다른 사람이 수정을 해야 될 경우... 지옥을 구경 할 수 있게 될 것입니다.

    일일이 모든 쿼리 컴포넌트를 전부 열어보면서 무슨 쿼리가 어떻게 들어가 있는지 다 알아낼려면... 상상이 가시는지요?

    딱히 일반적인 방법이란게 있는지 모르겠군요.

    권장하는 방법이라면 한 프로그램내에 수십개의 쿼리를 하지 않아도 될 정도로 DB 설계를 해놓거나

    되도록 최소한의 처리만을 하도록 프로그램을 만들어 놓는게 가장 괜찮을 것 같습니다만 다 만드는 사람 취향이라죠.

    저 같은 경우 메인쿼리 컴포넌트를 하나 올려두고 수시로 사용되는 쿼리는 상수로 만들어서 쓰고

    1회성으로 사용되는 쿼리는 해당 프로시져내에서 직접 써넣는 방식으로 합니다.

    각각의 프로퍼티 및 파라미터를 변수로 만들어서 처리하는 방식도 한번 해봤었는데 후회하실테니 권장해 드리지 않습니다.
    (만든 사람도 소스 수정이 거의 불가능...)

    2. 레포트툴은 급하다면 손에 익은걸 사용하시는게 가장 속 편하실 겁니다.

    저는 퀵레포트로 합니다만 몇몇 문제점들이 실무에서 태클이 될 경우가 간혹 있어서

    다른 걸로 바꿀까 하는 생각도 하고 있습니다.

    3. 상용이 아닌 그리드 중에 뭘 많이 쓰고들 계시는진 모르지만

    상용이 아닌 경우 그다지 사용해봐야 득 볼 만한 것은 없다고 봅니다.

    굳이 상용 그리드를 쓰는 이유가 그리드내에 그룹을 만들거나 셀병합을 한다던지 그런 아주 특수한 부분들이

    쉽게 구현이 가능하도록 되어 있기에 사용하는 건데

    상용이 아닌 그리드 중에 그런걸 멋지게 구현해 놓은 그리드가 있는지 모르겠군요.

    또한 그런 기능이 구현되 있다고 하더라도 해당 그리드상에 치명적인 문제를 찾았을시 뒷 수습에 문제가 생기기도 하죠.

    그런 특수한 기능이 필요없고 상용그리드를 제외한다면 그냥 StringGrid를 사용하는게 더 쓸만하다고 봅니다.

    4. dpk파일을 따로 열어서 빌드 하시고

    델파이 환경설정에서 라이브러리 패스를 해당 dpk 파일이 있는 폴더로 잡아주시면 됩니다.
  • Profile
    HighElf 2009.02.03 00:27
    답변감사드립니다
    • 타락천사
      2009.02.06 22:13
      앞에 "DB 이미지 불러와서 재정장 하기." 의 답변 참고 하시면 될 겁니다.
    • 타락천사
      2009.02.04 21:44
      핸들이 없으면 못 합니다.. 핸들이 없는 넘들은 시스템에서 그리라는 메시지를 받는게 아니라, Parent...
    • 김용무
    • 2009.02.04 02:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.04 21:42
      질문의 요지을 모르겠군요..
    • 밴댕이
    • 2009.02.04 02:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.04 21:41
      기본 기능에는 없습니다. 개발자가 같은 셀을 모두 찾아서 직접 그려야 합니다.
    • 밴댕이
      2009.02.05 21:17
      직접그리드 코딩을 어느 이벤트에서 어떻게 코딩해야 하는지 잘 모르겠네요.. drawcell이벤트에서 하는...
    • 타락천사
      2009.02.06 22:37
      델마당에 있는 답변 입니다. http://www.delmadang.com/community/bbs_view.asp?bbsNo=17&bbsCat=0&st...
    • 타락천사
      2009.02.04 21:39
      오래 전에 써봐서 기억이 안납니다만... Filter 속성 이 있는 컴포넌트 의 경우 사용 예가 크게 2가지 ...
    • 야단났네~*
      2009.02.10 19:11
      감사합니다. 다른 업무로 출장다녀와서 아직도 손 못대고 있었는데 오늘 한번 해 봐야겠습니다.
    • 야단났네~*
      2009.04.07 23:17
      이 문제에 대해서 새로운 국면입니다. 안 먹는게 아니었더군요. 영문이나 숫자일 경우에는 잘 먹습니다...
    • 박진수
    • 2009.02.04 00:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.04 21:32
      빌더 문제 군요.. 1. TMS 콤포넌트를 폼에서 모두 빼세요.. 2. 프로젝트 파일(*.bpr) 을 Ultra Edi...
    • 신철우
    • 2009.02.03 21:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.04 21:26
      메세지를 보면 OLE control(= InkEdit) 이 Window Handle 에 접근 할 수 없다는 의미 군요.. 아마 Ink...
    • 사다리
    • 2009.02.03 08:36
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.04 21:22
      문자열 처리를 모두 2바이트로 처리하시면 될 것 같습니다.. String 타입의 변수를 모두 WiseString ...
    • 사다리
      2009.02.04 22:44
      흠... 제가 어떤식으로 전달하던 인디 내부에서는 String로 받네요.. 미치겠네요.. 한글... 왜 ...
    • 타락천사
      2009.02.05 21:15
      출근하면서 생각해 봤는데, Indy delphi2009 버젼이 나와야 해결될 문제 군요..
    • 김범진
      2009.05.15 23:32
      저는 idsntp.synctime이 오작동하는 문제 때문에 데브기어 담당자에게 물었습니다. 스트링으로 받는 문...
    • Sway
    • 2009.02.03 03:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • lee, js
    • 2009.02.02 23:30
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 윤옥순
    • 2009.02.02 22:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.02.03 00:06
      Types유닛 추가하세요. 도움말 보시면 바로 나오는데.... 쩝~...
    • 타락천사
      2009.02.02 21:41
      TNumericField(Fields[j-1]).DisplayFormat := ',0'; 로 해보시죠.. 단지.. 짐작 입니다..
    • 스마일
      2009.02.02 22:24
      답변 감사합니다. 근데... 결과가 똑같아요. T T
    • 타락천사
      2009.02.03 01:40
      그리드 명칭으로 봐선 Quantum Gride 인 것 같군요.. 맞다면, 좌측 메뉴 에서 한델소모임-DevExpress ...
    • lee, js
    • 2009.02.02 19:51
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.02.02 21:38
      AddScrCmdTEC(MS, 450+li_X,10, add_image.Picture.Bitmap)); // X, Y 좌표 와 비트맵 AddScrCmdTEC...
    • lee, js
      2009.02.02 23:43
      일단 감사합니다만... 위의 타락1004님처럼 해보니 아래와 같이 type 에러가 나네요???? - incompa...
    • 타락천사
      2009.02.03 01:37
      integer 값을 넣어야 하는데, TBitmap 을 넣었다는 에러 입니다. integer 값 이라면, Left, Top, Widt...
    • HighElf
    • 2009.02.02 19:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2009.02.02 22:43
      1. 현재 쿼리수만큼 쿼리 컴포넌트를 올려놓은 프로그램을 분석/수정하고 있습니다. 결론은 사람...
    • HighElf
      2009.02.03 00:27
      답변감사드립니다
    • 사다리
    • 2009.01.31 03:10
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.01.30 19:49
      Connect, Disconnect는 UDP Client로 동작하여 서버에 연결하고 끊을 때 사용하구요. Open(=>Active:=Tr...
    • absurdite
      2009.01.30 23:34
      답변 감사합니다. Lazarus로 했을 때 수신하는 걸로 봐서는, 아마 제가 뭔가 잘못 세팅한 게 아닌가 싶...
    • 아낙네
    • 2009.01.29 22:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2009.01.30 00:53
      WordWrap.. 오래간만에 봤군요... WordWrap 속성이 True 면 Tab 문자를 기준으로 줄을 바꿔 줍니다.. ...
    • 술친구
      2009.01.31 00:44
      QRLabel 의 Autosize를 False 로 하고 크기를 출력하는 위치만큼 가로와 세로의 크기를 미리 조정해 놓으...
    • 김상형
    • 2009.01.29 20:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2009.01.30 00:43
      동적배열입니다. SetLength로 크기 잡고 Move같은 함수로 데이터 이동하시면 됩니다. var Str: s...
    • 타락천사
      2009.01.30 01:07
      sTemp, sTest: string; szTemp: TByteArray; pzTemp: PByteArray; ....... 1. String or P...
    • 타락천사
      2009.01.30 01:10
      SetLength(Dyn, Length(Str)); Move(Str[1], Dyn[0], Length(Str)); 와 SetLength(Dyn, L...