Q&A

  • Re: type 부분에.....이게 무엇을 의미하는지...?
이건 TField 객체라고 함다...

델파이는 테이블이나 쿼리를 오픈할때 동적으로 이넘을 만들어서 오픈하는데여

그 시간을 줄이기 위해서 사용자가 만들어 두기도 합니다.



근데 이넘을 만들어 두면 속도는 빨라지는데

만들때 조건에 벗어 나면 에러가 난다는 겁니다.

즉 TField 객체에는 없는 필드가 있는 테이블을 오픈하거나 하면 에러가 난다는 거져..



t_korEmplcd : tstringfield;

t_korName : tstringfield;

t_korUserid : tstringfield;

t_korReport : tstringfield;



t_engDe1 : tfloatfield;

t_engDe2 : tfloatfield;

t_engDe3 : tfloatfield;



이상황에서 Eng 테이블에 de4를 추가하고 테이블을 오픈할려면 에러가 나지요..



글고 값을 접근할때는

그냥 t_engDe1.AsString 이런 식으로 접근가능합니다...





푸른새 wrote:

> talble1의 이름 ---> kor

> kor의 필드 ---> emplcd, name, userid, report

>

> talble2의 이름 ---> eng

> eng의 필드 ---> de1, de2, de3

>

>

> unit a

>

> interface

>

> uses

> windows, forms, db, dbtalbes, stdctrls, controls, extctrls, hemibtn, classes,

> messages, sysutils, graphics, buttons, typinfo, gauges, inifiles, filectrl;

>

> type

> aa = class(tform)

> t_korEmplcd : tstringfield;

> t_korName : tstringfield;

> t_korUserid : tstringfield;

> t_korReport : tstringfield;

>

> t_engDe1 : tfloatfield;

> t_engDe2 : tfloatfield;

> t_engDe3 : tfloatfield;

>

> procedure ......등

>

> private

> {private declarations}

>

> public

> {public declarations}

>

> end;

>

> 위의 소스중 tstringfield라는 부분이 이해가 가지 않습니다.

> 이것을 가지고

> emplcd.text := t_korEmplcd.value;

> 이렇게 사용을 하던데...

>

> tstringfield(or tfloatfield)라는 것을 type부분에서 직접 써넣어야 하는건지 아니면..

> tstringfield(or tfloatfield)를 해주는 무엇인가가 있는건지...

> 어떻게 하면 tstringfield와 tfloatfield라는 것이 나오는 것인지.. 궁금합니다.

>

> 일반적으로 db의 내용을 꺼내올때 저는

> emplcd.text := t_kor.fieldbyname('empcld').asstring;

> 라고 하거든요... 그래서인지 위에 있는 소스가 무지 궁금합니다.

>

1  COMMENTS
  • Profile
    뻐록이 2001.01.16 19:16
    푸른새 wrote:

    > table1 이름 ---> A

    > A의 필드 ---> num, name

    > A의 active ---> true

    >

    > type부분에

    >

    > A_num : tstringfield;

    > a_name : tstringfield;

    >

    > 라고 하고

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > num.text := A_num.AsString;

    > name.text := A_name.AsString;

    > end;

    >

    > 이렇게 했는데.... 에러가 나더라고요...

    >

    > 무엇이 문제인지.... 솔직히 말해 어떻게 사용하는지 모릅니다.

    > 만약 제가 하고자 하는 것이 무엇인지 알고 계신다면...알려주십시오...

    >

    답변이 될지 모르겠지만 .......

    도움이 되길.

    procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > num.text := Table1.FieldByName('A_num').AsString;

    > name.text := Table1.FieldByName('A_Name').AsString;

    > end;

    >

    이렇게 하심 되거 같네요

    참 테이블이 오픈 도어 있어야 한다는건 기본이져



    그럼 즐 코딩 하세요