수고하십니다.
델파이 4.0버전을 사용하고 있으며 3Tier환경에서 사용합니다.
Server(Pro*C -> 업무처리 Logic이 구사되어 있음)
Tuxedo(중계처리)
Client(관련데이터 송수신 처리)
PC : 256M 866MHZ Win-Me
***미리보기 버튼클릭하여 처리하는 부분은 다음과 같습니다.
procedure TMT7878.PreBtnClick(Sender: TObject);
var
MDIChld : TWnChildForm;
ret : Integer;
tmp_ch : String;
begin
Screen.Cursor := crHourGlass;
if (KeyfldChk(ALL_FLD) = FALSE) then begin
Screen.Cursor := crDefault;
exit;
end;
memset(@ai, 0, sizeof(SUBACT302R_INPDATA)); // ai 초기화
memset(@ao, 0, sizeof(SUBACT302R_OUTDATA)); // ao 초기화
case Dmatoi(sJobgb.Text) of
1,2 : strpcopy(ai.sJobGb, sJobgb.Text); // 업무구분
end;
tmp_ch := Copy(sChgb.Text, 1, 2);
strpcopy(ai.sChgb, tmp_ch);
// strpcopy(ai.sYymm, sYymm.Text); // 해당년월
tmpYyyymm := Edit_Yy.Text + Edit_Mm.Text;
strpcopy(ai.sYymm, tmpYyyymm); // 해당년월
// 출력 Rq
ret := DmRqRp( SERVER, 'bacg302r', '0',
sizeof(SUBACT302R_INPDATA), @ai, @ao, M_Code );
Screen.Cursor := crDefault;
if NOT((ret < 0) OR (M_Code[0] = 'E')) then begin
tmp_yyyy := Edit_yy.Text;
tmp_mm := Edit_Mm.Text;
tmp_Chgb := sChgb_Panel.Caption;
Application.CreateForm( TQT7878, QT7878 );
QT7878.QRPT7878.Preview;
MDIChld := TWnChildForm(MainForm.MDIChildren[0]);
MDIChld.CloseBtn.SetFocus;
QT7878.QRPT7878.Free;
end;
MsgDsp(@M_Code);
sJobgb.SetFocus;
end;
이상의 코드를 사용하고 있습니다.
몇번인지는 정확하지 않으나 여러번 다시 들어가서 미리보기를 실행하면
"Access violation at address FABEC7B5 . Read of address FABEC7B5"
에러 메세지가 나옵니다.
어디가 잘못된 것일까요?
답변주시면 감사하겠습니다.
저도 전에 같은 일이 있었는데.. 자세한 원인은 모르겟지만.
어찌