Q&A

  • fieldByName과 Parmabyname의 차이점 좀..
fieldByName과 Parmabyname의 차이점 좀 자세히 알려주세요...



어떨때 어떤것을 쓰면 좋은지 자세히 알려주세요..

1  COMMENTS
  • Profile
    조복기 1999.06.26 21:55
    최선기 께서 말씀하시기를...

    > fieldByName과 Parmabyname의 차이점 좀 자세히 알려주세요...

    >

    > 어떨때 어떤것을 쓰면 좋은지 자세히 알려주세요..



    안녕하세요..조복기입니다.

    하이텔 vtool에 관련된 답변내용을 캡쳐했습니다.

    무단도용입니다..재활용인셈

    (전창선님, 양병규님, 박후선님 글입니다)

    참고하세요







    전창배 (kimm01 )

    [참고] 21461 1998-11-15 03:12 18 line



    create table 인사마스타 (

    사번 int,

    이름 char(10),

    나이 int)



    위와 같이 된 table이 있구요. 다음과 같은 SQL이 있다구 가정하구 설명하죠.

    select * from 인사마스타

    where 사번 = :사번

    위의 SQL은 사번으로 한 레코드를 찾는 것이죠.

    이때 ':사번'에 값을 넘겨주는 방법이 바로 ParamByName입니다.

    방법은 ParamByName('사번').AsInteger := ~~~~;

    특정 레코드에 값을 지정하는 방법이 FieldByName입니다.

    방법은 FieldByName('이름').AsString := ~~~~;

    물론 table 이나 query의 이름이 이 메소드 앞에 있어야 겠죠...



    참고만 하구 잊어버려요...



    그럼.



    -------------------------------------------------------------------------

    양병규 (슈베르트)

    [답변] ParamByName과 FieldByName의 차이. 1998-11-16 02:19 7 line



    ParamByName이란 TQuery에만 있는것으로 필드명 같은것을 저장해 놓은 배열이구요

    FieldByName이란 TDataSet에 있는것으로 필드명 자체를 말합니다.

    즉 ParamByName에는 거기에 어떤 필드를 넣느냐에 따라 값이 달라지지만

    FieldByName은 필드 그 자체를 말하기때문에 그 값이 달라질 수 없습니다.

    쩝~ 설명이 이해하기가 쉽지가 안군요.. 그럼

    평안하시길~





    -------------------------------------------------------------------------

    박후선 (OSOLGIL )

    [답변] 8281, Query의 Params 1997-05-17 02:43 24 line



    SQL 구문의 내용을 대체하는 수단(변수형태)로 Param이 지원됩니다.



    select * from Order where OrderDate = '97-04-20'

    위의 코드는 에러를 출력합니다. 97-04-20은 SQL구문이 인식하는

    Data 포맷이 아니기 때문입니다.

    select * from Order where OrderDate = '20-APR-97'

    이렇게 해주어야 하는데, 쉽지 않죠? 이런 경우나 동적으로 SQL

    문의 내용을 바꾸어줄 필요가 있을 때, 예를들면 Edit1.Text의

    내용을 구문을 변경하지 않고 넣고 싶다거나 할때 Param을 씁니다.



    select * from Order where OrderDate = :POrderDate



    여기서 POrderDate는 아무 이름이나 줘도 상관이 없습니다.

    일종의 변수 역할로 다음과 같이 변경할 수 있습니다.



    Query1.ParamByName('POrderDate').AsDate := StrToDate('97-04-20');

    혹은, Params 프로퍼티를 이용해서,

    Query1.Params[0].AsDate := StrToDate('97-04-20')과 같이 해주시면

    됩니다.



    Param은 여러개 사용하셔도 되며, 구문을 직접 바꾸는 것 보다

    간편하고 오류를 체킹하기에도 좋습니다. (구문에서 오류가 나

    지 않고 파라미터 할당에서 오류가 발생하기 때문)