C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[13376] 버그리포팅 2
최보현.U&I [uriduri] 2481 읽음    2007-09-19 00:01
오~ 또 버그를 찾았습니다.

    AnsiString  SQL;
    AnsiString TMP;

    SQL  = "UPDATE "  + AnsiString(DBTable) + " SET ";
    TMP.printf("[ID] = '%d'", LM->ID);
    SQL += TMP;

    for(int SID=0; SID<FAWSEnv->LOGGER[LID].SENSOR.Count; SID++)    {
        TMP.printf(", [S%02dA] = '%.3f'", SID, LM->Sensor[SID].Field[F_AVG]);    SQL += TMP;
        TMP.printf(", [S%02dS] = '%.3f'", SID, LM->Sensor[SID].Field[F_SPC]);    SQL += TMP;
        TMP.printf(", [S%02dN] = '%.3f'", SID, LM->Sensor[SID].Field[F_MIN]);    SQL += TMP;
        TMP.printf(", [S%02dM] = '%.3f'", SID, LM->Sensor[SID].Field[F_MAX]);    SQL += TMP;
        TMP.printf(", [S%02dV] = '%d'"  , SID, LM->Sensor[SID].Status);        SQL += TMP;
    }

위와 같은 소스가 있을때

소스를 블럭을 잡고 변수명을 일괄적으로 바꾸는 기능 있잖아요~
그 기능으로 TMP 를 SQLTMP 로 바꾸면

    AnsiString  SQL;
    AnsiString  SQLTMP;

    SQL  = "UPDATE "  + AnsiString(DBTable) + " SET ";
    SQLTMP.printf("[ID] = '%d'", LM->ID);
    SQL += SQLTMP;

    for(int SID=0; SID<FAWSEnv->LOGGER[LID].SENSOR.Count; SID++)    {
        SQLTMP.printf(", [S%02dA] = '%.3f'", SID, LM->Sensor[SID].Field[F_AVG]);    SQL += TMP;
        SQLTMP.printf(", [S%02dS] = '%.3f'", SID, LM->Sensor[SID].Field[F_SPC]);    SQL += TMP;
        SQLTMP.printf(", [S%02dN] = '%.3f'", SID, LM->Sensor[SID].Field[F_MIN]);    SQL += TMP;
        SQLTMP.printf(", [S%02dM] = '%.3f'", SID, LM->Sensor[SID].Field[F_MAX]);    SQL += TMP;
        SQLTMP.printf(", [S%02dV] = '%d'"  , SID, LM->Sensor[SID].Status);    SQL += TMP;
    }

이처럼 바뀝니다.

즉 라인에 처음으로 나온 변수는 바뀌는 반면 같은 라인에 2번째이상 나오는 같은이름의 변수는 바뀌지 않습니다.

^^
박지훈.임프 [cbuilder]   2007-09-19 00:05 X
넵 알겠습니다.
그런데 보여주신 사례만 봐서는, 같은 라인에 2번째 나왔다고 해서 바뀌지 않는다기보다는, 한 라인에 두 문장이 있는 경우가 더 의심스럽군요.

역시, 좀더 테스트해보고 수일내로 레포팅하겠습니다.
최보현.U&I [uriduri]   2007-09-19 00:08 X
네~ 2번째가 아니라~ 두문장일경우에도 않됩니다. ^^ 뒷 문장은 무조건 않되는군요~

+ -

관련 글 리스트
13376 버그리포팅 2 최보현.U&I 2481 2007/09/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.