Q&A

  • 테이블 열때마다 자동 계산되는 필드 만들기
'sample1.db' 라는  Table에  (날짜, 값1)이 있는데 이건 다른 프로그램에서 만들어져서 저장되 있어요.
또 다른 프로그램에서
테이블을 열어서 볼때마다 값1에 일정한 변수를 곱해서 '결과' 라는 필드에
넣어 주려고 합니다.
윈도우 프로그램이고 매번 새로 계산되어져야 합니다.
AutoCalcField 라는게 있던데 내 경우엔 어떻게 적용해야 할지?
sample1.db를 만들때 '결과'라는 필드를 미리 잡아줘야 하나요?  
(날짜, 값1, 결과) 이렇게......  
처음하는 프로그램인데 책만 보고 하려니가 감이 안 오네요.
힌트 라도 좀 주시면 감사하겠어요.

그리구 dbgrid에서 여러테이블을 한 그리드에 나타내려면 table 말고 query써야 하나요?
3  COMMENTS
  • Profile
    유응철 2005.06.09 02:45

    코드 같은 것을 보여줄때는 CalcField를 써도 무방 하지만... 좀 많은 데이터를 쓸때는 되도록이면, 쓰지 않는것이 좋을듯 합니다. (데이터에 따라 좀 많이 느려집니다.) 속도에 민감하다면... 쿼리문으로 해결하시는 것이 좋을듯 합니다.
  • Profile
    성더기 2005.06.09 01:31
    AutoCalcField 라는 넘은
    TTable이나 TQuery 라는 넘이 실행될때 묵시적으로 TStringField라는 넘을 만들어서 작업을 하는데요
    해당 TTable이나 TQuery를 오픈한다음에 오른쪽 버튼을 클릭하면 명시적으로 TStringField라는 넘을 만들수
    있습니다
    그걸 만들어둔다음 New Field하셔서 Calculate필드를 만든다음 OnCalculate이벤트에 코딩을 하여 값을 넣습니다

    이런식으로 작업을하면 테이블 컴포넌트나, 쿼리컴포넌트에 연결되는 테이블이나 쿼리문이 변경이 없이
    유일해야합니다. 그렇지 않으면 에러가 발생합니다
    자세한거는 ..음.. 델파이 도움말에서 TStringField를 검색해보시길...^^;;;;

  • Profile
    천희택 2005.06.06 06:24


    에혀... 저도 잘 못하기 때문에 뭐 가르쳐 드린다기 보다는 참고 사항입니다. .db 파일은 dBase이가요...

    음.... 암튼  'sample1.db' 로 다른 프로그램이 테이블에 쓸 때 'Lock'이 걸릴겁니다. 어떻게 돌아가는

    건지 모르겠지만, 우선적으로 그 점을 염두에 두시고, '결과'라는 필드를 갱신할려면 당연히 테이블에 '결과'

    필드가 있어야 할 것 같구요. dbgrid에 여러 테이블의 필드를 볼려면 join을 사용하여야 합니다. join에 대한

    설명은 검색해도 많이 있을 것 같구요... http://database.sarang.net/?inc=read&aid=861&criteria=dbms&subcrit=&id=&limit=20&keyword=join&page=1 를 참고하셔도

    될것 같습니다.