Q&A

  • "SQL문" 발행의 차이점에 대한 ?


SQL문을 발행하여 DB의 내용을 읽어 오는데,궁금한 내용이

있어서 고수님의 조언을 듣고자 이렇게 글을 올립니다.



▶ SQL 문 ◀

SELECT * FROM FILE WHERE DATE = :PDATE;



※ 위에서 실행되는 "SQL문"에서 실행 모드에서 다시 조건을

받아들여 "SQL문"을 실행하는데,다음의 두가지의 차이점을

알고 싶습니다.



1. Query1.ParamByName('PDATE') AsString := Trim(text1.text);

Query1.open;



2. With Query1 do

Begin

Active := True;

Close;

Sql.clear;

Sql.add("Select * from file where date = Trim(text1.text));

open;

End;



※ 다음의 1,2번의 차이점에 대하여 알고 싶습니다.

프로그램을 작성하는 경우에 어떠한 방법이 더 효율적인지?

알고 싶습니다.

※ 좋은 답변을 기다리고 있겠습니다.



2  COMMENTS
  • Profile
    신인재 1999.07.08 03:56
    음......



    1번은 쿼리에 SQL을 넣고 조건을 파라메터로 처리 하셨고

    2번은 전체 SQL을 쌔려 넣으셨군요....



    이것은 한마디로 별반 차이가 없습니다...성능적인 측면으로 말하자면 말이죠.

    여기서 성능을 향상시키려면 디비와 어플리케이션과의 메세지교환을

    최소한하는 것이 방법입니다. 예를 들어 꼭 가능한한 WHERE 을 주어

    필요한 데이타만 불러 온다던지 인덱스파일을 잘 활용한다던지 하는

    것입니다. 또한 쿼리를 이용하실때 Prepare메소드를 이용하시면

    델파이가 내부적으로 옵티마이징을 하므로 성능향상을 기대 할 수 있습니다.



    아참, 그리고 With문을 이용하는 것은 클래스를 기반으로하는

    델파이의 권장코딩 방법입니다.

    따라서 2번에 의한 코딩이 정석이라 할 수 있겠습니다...







    김서영 께서 말씀하시기를...

    >

    > SQL문을 발행하여 DB의 내용을 읽어 오는데,궁금한 내용이

    > 있어서 고수님의 조언을 듣고자 이렇게 글을 올립니다.

    >

    > ▶ SQL 문 ◀

    > SELECT * FROM FILE WHERE DATE = :PDATE;

    >

    > ※ 위에서 실행되는 "SQL문"에서 실행 모드에서 다시 조건을

    > 받아들여 "SQL문"을 실행하는데,다음의 두가지의 차이점을

    > 알고 싶습니다.

    >

    > 1. Query1.ParamByName('PDATE') AsString := Trim(text1.text);

    > Query1.open;

    >

    > 2. With Query1 do

    > Begin

    > Active := True;

    > Close;

    > Sql.clear;

    > Sql.add("Select * from file where date = Trim(text1.text));

    > open;

    > End;

    >

    > ※ 다음의 1,2번의 차이점에 대하여 알고 싶습니다.

    > 프로그램을 작성하는 경우에 어떠한 방법이 더 효율적인지?

    > 알고 싶습니다.

    > ※ 좋은 답변을 기다리고 있겠습니다.

    >





  • Profile
    김서영 1999.07.08 20:42


    "성능을 향상시키려면 디비와 어플리케이션과의 메세지교환" db와 프로그램의

    메세지 교환이 프로그램에서 파일을 Read하는 시점을 말합니까?





    최소한하는 것이 방법입니다

    신인재 께서 말씀하시기를...

    > 음......

    >

    > 1번은 쿼리에 SQL을 넣고 조건을 파라메터로 처리 하셨고

    > 2번은 전체 SQL을 쌔려 넣으셨군요....

    >

    > 이것은 한마디로 별반 차이가 없습니다...성능적인 측면으로 말하자면 말이죠.

    > 여기서 성능을 향상시키려면 디비와 어플리케이션과의 메세지교환을

    > 최소한하는 것이 방법입니다. 예를 들어 꼭 가능한한 WHERE 을 주어

    > 필요한 데이타만 불러 온다던지 인덱스파일을 잘 활용한다던지 하는

    > 것입니다. 또한 쿼리를 이용하실때 Prepare메소드를 이용하시면

    > 델파이가 내부적으로 옵티마이징을 하므로 성능향상을 기대 할 수 있습니다.

    >

    > 아참, 그리고 With문을 이용하는 것은 클래스를 기반으로하는

    > 델파이의 권장코딩 방법입니다.

    > 따라서 2번에 의한 코딩이 정석이라 할 수 있겠습니다...

    >

    >

    >

    > 김서영 께서 말씀하시기를...

    > >

    > > SQL문을 발행하여 DB의 내용을 읽어 오는데,궁금한 내용이

    > > 있어서 고수님의 조언을 듣고자 이렇게 글을 올립니다.

    > >

    > > ▶ SQL 문 ◀

    > > SELECT * FROM FILE WHERE DATE = :PDATE;

    > >

    > > ※ 위에서 실행되는 "SQL문"에서 실행 모드에서 다시 조건을

    > > 받아들여 "SQL문"을 실행하는데,다음의 두가지의 차이점을

    > > 알고 싶습니다.

    > >

    > > 1. Query1.ParamByName('PDATE') AsString := Trim(text1.text);

    > > Query1.open;

    > >

    > > 2. With Query1 do

    > > Begin

    > > Active := True;

    > > Close;

    > > Sql.clear;

    > > Sql.add("Select * from file where date = Trim(text1.text));

    > > open;

    > > End;

    > >

    > > ※ 다음의 1,2번의 차이점에 대하여 알고 싶습니다.

    > > 프로그램을 작성하는 경우에 어떠한 방법이 더 효율적인지?

    > > 알고 싶습니다.

    > > ※ 좋은 답변을 기다리고 있겠습니다.

    > >

    >

    >





    • 신호성
      1999.04.27 03:49
      류 wrote: > 안녕하세요... > 질문을 드리게 됐네요... > > 2개의 테이블을 비교하여 즉 A 테이블과 B...
    • 구창민
      1999.04.26 22:20
      류 wrote: > 안녕하세요... > 질문을 드리게 됐네요... > > 2개의 테이블을 비교하여 즉 A 테이블과 B...
    • 김서영
    • 1999.07.07 17:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.07.08 03:56
      음...... 1번은 쿼리에 SQL을 넣고 조건을 파라메터로 처리 하셨고 2번은 전체 SQL을 쌔려 넣으셨군요....
    • 김서영
      1999.07.08 20:42
      "성능을 향상시키려면 디비와 어플리케이션과의 메세지교환" db와 프로그램의 메세지 교환이 프로그램...
    • 신상철
    • 1999.07.07 17:42
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박홍석
      1999.04.24 20:25
      안녕하세요. 날짜형 필드를 가지고 쿼리하는 방법을 알고 싶습니다. 여러가지로 해보았는데 Typemismat...
    • 공병모
      1999.07.08 01:11
      신상철 께서 말씀하시기를... > 대부분 FindWindow로 실행중인지 아닌지를 판단하는 것 같습니다. > 그러...
    • 강두헌
      1999.04.27 22:14
      박홍석 wrote: > 안녕하세요. > > 날짜형 필드를 가지고 쿼리하는 방법을 알고 싶습니다. > 여러가지...
    • 신인재
      1999.04.26 21:03
      박홍석 wrote: > 안녕하세요. > > 날짜형 필드를 가지고 쿼리하는 방법을 알고 싶습니다. > 여러가지...
    • 김승열
    • 1999.04.26 09:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.26 20:59
      음냐...등록되지 않은 라이브러리라는 에러는 아마도 Type Library에 등록이 잘 안된듯 싶은데요.. 그 프...
    • 이강범
    • 1999.07.07 16:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.07 22:51
      실행시킨것의 핸들을 얻어와서 (FindWindow등등의 함수를 이용) SetParent를 이용하여 부모를 작은 윈도우...
    • 이강범
      1999.07.08 16:45
      이정욱 께서 말씀하시기를... > 실행시킨것의 핸들을 얻어와서 (FindWindow등등의 함수를 이용) SetParent...
    • 이은섭
    • 1999.04.26 06:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.26 19:35
      이은섭 wrote: > dbgrid에서 직접입력,수정이 발생하는데 필드가 12자리인 넘버필드가 > 있습니다. > da...
    • 이만준
    • 1999.07.07 09:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김상영
      1999.07.07 13:39
      이만준 께서 말씀하시기를... > > 안녕하세요.. > > 부팅해서 윈도우를 시작하면... > > LogOn 대...
    • 심주성
    • 1999.04.26 05:39
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      1999.07.07 09:51
      안녕하세요... 윈도우에는 여러개의 프로그램이 실행되는데.. 내가 만든 프로그램에서 실행되고 있...
    • 안치봉
      1999.04.26 19:30
      심주성 wrote: > > 안녕하세요. 완전프로그래밍 초짜입니다. > > delphi4.0을 해볼려구 함 깔아...
    • 심주성
      1999.04.28 09:40
      안치봉 wrote: > > 안녕하세요. > > 잘은 모르겠지만 델파이4가 일부 그래픽카드와 충돌한다는 설도 ...
    • 박진아
    • 1999.04.26 18:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.26 19:26
      박진아 wrote: > Form1 에서 입력을 받은 후에 > Form2를 출력폼으로 호출하는 프로그램인데요, > Canno...
    • 문창완
    • 1999.07.07 06:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.07.07 08:45
      문창완 께서 말씀하시기를... > 여기에 이런질문해도 되나여... > 암튼 무례를 무릅쓰고... > 정말 급한...
    • 박성훈
      1999.07.08 02:19
      안치봉 께서 말씀하시기를... > 문창완 께서 말씀하시기를... > > 여기에 이런질문해도 되나여... > > ...
    • 박성훈
      1999.07.08 02:23
      두번째의 방법에서 점퍼를 바꾼후 부팅하시고 CMOS SETUP에서 패스워드를 날리신후 재부팅하셔야 합니다.
    • 박진아
    • 1999.04.26 18:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.26 19:26
      박진아 wrote: > Form1 에서 입력을 받은 후에 > Form2를 출력폼으로 호출하는 프로그램인데요, > Canno...
    • 홍길동
      1999.07.07 10:35
      정연섭 께서 말씀하시기를... > 델파이 도사님의 좋은 방법가르쳐주세요.. > > StatusBar의 특정 Panel...
    • 홍길동
      1999.07.08 02:10
      홍길동 께서 말씀하시기를... > 정연섭 께서 말씀하시기를... > > 델파이 도사님의 좋은 방법가르쳐주세...
    • 한승현
    • 1999.04.26 17:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.26 21:49
      첫번째 컴포넌트를 인스톨 한 후 dpk 파일을 저장 하지 않고 종료를 하신것 같네요. 컴포넌트 설치 후 델파...
    • 김승열
    • 1999.04.26 09:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.26 20:59
      음냐...등록되지 않은 라이브러리라는 에러는 아마도 Type Library에 등록이 잘 안된듯 싶은데요.. 그 프...
    • 이은섭
    • 1999.04.26 06:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.26 19:35
      이은섭 wrote: > dbgrid에서 직접입력,수정이 발생하는데 필드가 12자리인 넘버필드가 > 있습니다. > da...
    • 느낌표
    • 1999.07.07 05:51
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 심주성
      1999.04.26 05:39
      안녕하세요. 완전프로그래밍 초짜입니다. delphi4.0을 해볼려구 함 깔아봤습니다. 군데.. ...
    • 안치봉
      1999.04.26 19:30
      심주성 wrote: > > 안녕하세요. 완전프로그래밍 초짜입니다. > > delphi4.0을 해볼려구 함 깔아...
    • 심주성
      1999.04.28 09:40
      안치봉 wrote: > > 안녕하세요. > > 잘은 모르겠지만 델파이4가 일부 그래픽카드와 충돌한다는 설도 ...
    • 강지영
    • 1999.04.26 01:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.26 01:47
      DBGrid의 Align이 문제인것 같네요. alClient나 다른 것이 설정되어 있으면 당연히 위치가 바뀌어 버립니...