FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[4251] Re:파이어버드 검색 질문
michael [] 2567 읽음    2011-10-11 15:11
혹시 ibquery를 사용하셨나요?
데이터를 등록, 수정, 삭제 후 Commit작업을 해주시면 해결되실것 입니다.

이유를 모르겠습니다. 님이 쓰신 글 :
: 파이어버드 Ver 2.1 + 델파이 Xe를 사용하고 이며 서버에 데이터를 저정하고 클라이언트에서
: 실시간조회를 하는 구성입니다.(트래픽이 많지 않아 미들웨어는 사용하지 않음)
:
: Timer를 써서 2분마다 서버에서 데이터를 읽어 그리드에 표시 하는데 프로그램을 종료하고 다시
: 실행 하였을때는 최신 값이 표시되지만 타이머에서 쿼리 문을 날렸을때는 프로그램 실행시 불러온
: 값만 표시가 되고 업데이트가 되지를 않는군요,,,
:
: Timer문제인가 하여 쓰레드로 바꾸어 보아도 동일한 증상이 나옵니다.
:
: 더 이상한건 내부 시험에서는 더 낮은 사양의 클라이언 PC에 적용하여도 정상 동작하는데 업체에
: 설치된 곳에서는 이와 같은 증상이 나타 나는군요..
:
: 혹시 이와 같은 문제가 있으셨거나 어디가 문제인지 짐작 되시는 분 있으면 알려 주시면 감사하겠습니다.
:
: 쿼리는 진짜 간단합니다.
:
:   with RMSIWQueryRT do
:   begin
:     Close;
:     SQL.Clear;
:
:     SQL.Text := ' Select LDate, SENSORID,CHANNELID,CHANNELMODE,RVALUE,STATUS From TBDATALOG ' +
:                 ' Where (USERNAME=:a or USER1=:a or USER2=:a or USER3=:a or USER4=:a ) and ((LDate>=:b) and (LDate<=:c))' +
:                 ' order by CHANNELID, LDate desc';
:
:
:     ParamByName('a').DataType := ftString;
:     ParamByName('a').Size     := 20;
:     ParamByName('a').Value    := UName;
:
:     ParamByName('b').DataType := ftString;
:     ParamByName('b').Size     := 19;
:     ParamByName('b').Value    := formatDatetime('yyyy-mm-dd hh:nn:ss', IncDay(Now,-1));
:
:     ParamByName('c').DataType := ftString;
:     ParamByName('c').Size     := 19;
:     ParamByName('c').Value    := formatDatetime('yyyy-mm-dd hh:nn:ss', Now);
:
:     try
:
:       Open;
:       FetchAll;
:
:       first;
:
:       i := 1;
:
:       while Not Eof do
:       begin
:         if (FieldByName('CHANNELID').AsInteger  = i) and (FieldByName('CHANNELID').AsInteger < 32) then
:         begin
:           Grd1.Cells[3,FieldByName('CHANNELID').AsInteger] := FieldByName('LDate').AsString;
:
:           Grd1.Cells[4,FieldByName('CHANNELID').AsInteger] := Format('%3.3f',[FieldByName('RVALUE').AsSingle]);
:
:           if FieldByName('STATUS').AsInteger = 1 then
:           begin
:             Grd1.Colors[0,FieldByName('CHANNELID').AsInteger] := ClNone;
:           end
:           else Grd1.Colors[0,FieldByName('CHANNELID').AsInteger] := clred;
:
:           inc(i);
:
:           Continue;
:         end
:         else if (FieldByName('CHANNELID').AsInteger  = i) and (FieldByName('CHANNELID').AsInteger > 31) then
:         begin
:           Grd2.Cells[3,FieldByName('CHANNELID').AsInteger - 31] := FieldByName('LDate').AsString;
:
:           Grd2.Cells[4,FieldByName('CHANNELID').AsInteger - 31] := Format('%3.3f',[FieldByName('RVALUE').AsSingle]);
:
:           if FieldByName('STATUS').AsInteger = 1 then
:           begin
:             Grd2.Colors[0,FieldByName('CHANNELID').AsInteger - 31] := ClNone;
:           end
:           else Grd2.Colors[0,FieldByName('CHANNELID').AsInteger - 31] := clred;
:
:           inc(i);
:
:           Continue;
:         end;
:
:         Next;
:
:         if FieldByName('CHANNELID').AsInteger >= (i+1) then
:            i := FieldByName('CHANNELID').AsInteger;
:       end;
:
:     Except On EIBInterBaseError do
:       begin
:         Cancel;
:       end;
:     end;
:   end;

+ -

관련 글 리스트
4250 파이어버드 검색 질문 이유를 모르겠습니다. 2500 2011/10/11
4251     Re:파이어버드 검색 질문 michael 2567 2011/10/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.