성호종 wrote:
답변 감사 합나다
Win2000에서도 이러한 문제가 발생한다 합니다....
with Query do begin
for i := 0 to RecordCount do begin
....
end;
end;
위 쏘스에서도 i 값이 지맘데로 변한다 하더군요.....
허참 문제네여......
이러다 델파이 없어지는게 아닐지........
> 김해중 wrote:
> 저는 약간 다른경우지만 NT에서 개발한 프로그램이 WIN98에서 엉뚱하게 나와서
> 몽땅 98에서 다시 작업한 경우가 있었습니다. 정말 열받는 일이지요.
> NT에서의 결과값이 이상하다면 Trace를 걸어보세요....... 그럼 어디에서 값이 이상해지는지 확인 하실수 있을 것이고 도대체가 말도 안되는 곳에서 이상해지면 98에서 작업하시던가 한국INPRISE에 ServicePack가 있는지 확인하신 후 그것도 없다면 개떡같은 델파이가 되는것이겠지요...
>
> > 자금 시스템을 개발하고 있습니다.
> > Real형으로 변수를 선언하고 Query로 해당 Data를 읽어들여
> > Real형변수에 저장시킨후 이자계산을 하는 로직인데....
> > 답은 11431.00입니다....
> > 그런데 이상한일은 개발자들중 WinNT버젼에서 컴파일하는 경우가 있고
> > 일반 Windows버젼에서 개발하는 경우가 있습니다....
> > NT4.0에서 컴파일 한경우는 답이 '1143100.0'이 나오고
> > Windows98에서 에서 컴파일한 경우는 답이 '11431.00'이
> > 나옵니다...
> > 답은 당연히 Windows98에서 게산한 값이 맞습니다....
> > 어디에서 문제가 될까요....
> >
> > 계산공식은 '소수점이하절사(원금*일수/일할일수)' 입니다.
> > 소수점이하절사 입니다.. 그래서 Trunc()를 썼구여......
> > 예)Trunc(35056.99*30/92) = 11431.00
> >
> > 또한가지는 NT4.0에서 Integer형변수를 초기화시키기 위해
> > '0'을 집어넣었더니 이상한 값이 들어가는데
> > 이것 또한 왜그럴까요....
> >
> > 고수님들의 많은 조언 부탁드립니다.
> >
> > 참고로 공통이라부르는 Win95가 설치되어있는 PC를 파일서버로
> > 사용하여 그 PC에있는 소스를 직접 컴파일 하고 있습니다.....
> >
> > 잘 부탁드립니다.
with Query do begin
Last;
RecCnt:=RecordCount;
for i := 0 to RecCnt do begin
....
end;
end;
이렇게 해주시는 것이 옳은것 같은데요. 속도도 좀더 빨리 나올꺼구요.
글구 이문제는 비베도 같고 있더라구요. Rs.MoveLast를 먼저 불러 주지 않으면 가끔 가다가 RecordCount를 못가지고 오는 경우가 있어요...
Integer를 0 으로 초기화 시키시는데 문제가 생긴다는건 좀 이해하기가 어렵군요. 사실
Var
I : Integer;
Begin
I:=1818;
End;
로 쓰시면 델파이가 알아서 먼저 I:=0;으로 초기화 시켜준다고 알고 있거든요. 초기화 안시켜 주셔도 됩니다.
글고 계산 값이 다르게 나오는건 와 그런지 도저히 모르겠군요. 저도 98, 2000, NT 등등 다 쓰는데 아직까지 그런 문제는 없었거든요.... 혹시 사용자들의 컴이 (쥐)약을 먹은게 아닐까요?
김해중 wrote:
> 성호종 wrote:
> 답변 감사 합나다
> Win2000에서도 이러한 문제가 발생한다 합니다....
>
> with Query do begin
> for i := 0 to RecordCount do begin
> ....
> end;
> end;
>
> 위 쏘스에서도 i 값이 지맘데로 변한다 하더군요.....
>
> 허참 문제네여......
>
> 이러다 델파이 없어지는게 아닐지........
>