안녕하세요?
관련 답변은 질문 하신 내용 밑에 답을 해 놓겠습니다.
>게시판을 이용해 주셔서 감사합니다.
>다음양식에 맞게 입력해주세요.
>
>* 고객시스템명 : SDS
>* GAUCE 버전 : 1.1.x.x
>* WAS 종류(WebLogic 등등) : WebSphere
>* DB 종류 : Oracle
>* 문의 유형(질문/요청/참조) : 질문
>* 내용 :
>
>CSV 파일을 업로드한 후, 업로드한 내용을 DB에 저장하려고 합니다.
>그런데, CSV 파일 업로드는 단지 조회와 같은 status라고 하셔서
>CSV 파일을 업로드한 경우는 status에 관련없이 모두 DB에 저장하려고합니다.
>
>예제소스 >>
>
>if(excel_upload != 'Y') //정상적 조회
>{
> for(i=0; i<=ds_sample.CountRow;i++){
> if(ds_sample.RowStatus(i) > 0) {
> flag+=1;
> }
>
> if(flag > 0){
> tr_master.Action = "/vsm/gauceData?gact=com.action.SalesAction"; //Java File
> tr_master.Action += "&gmethod=insSales"; //Java File method() --- (1)
> tr_master.Action += "&mode=N";
> tr_master.Action += "¶m_01="+ds_family.NameValue(ds_family.RowPosition,"CODE");
> tr_master.Post();
> }
> }
>}
>else //CSV 파일 업로드 -------------- (2)
>{
> tr_master.Action = "/vsm/gauceData?gact=com.action.SalesAction"; //Java File
> tr_master.Action += "&gmethod=insSalesUpload"; //Java File method() ----(3)
> tr_master.Action += "&mode=N";
> tr_master.Action += "¶m_01="+ds_family.NameValue(ds_family.RowPosition,"CODE");
> tr_master.Post();
>}
>
>질문 1 >
>DataSet에 변화가 있는지 확인해서 변화가 있는 DataSet의 Row만 업데이트 하려고 합니다.
>이렇게 하는 경우,
>(1)부분의 SalesAction.insSales()에 ds_sample 전체 DataSet이 넘어가나요?
>아니면, ds_sample.CountRow에 해당하는 한 Row만 넘어가나요?
==> row status에 변화가있는 자료만 넘어가게 됩니다.
하지만 csv로 넘긴 전체자료를 모두 insert처리하기 원하시면 데이터셋의 UseChangeInfo속성을
사용하시면 변화가 없는 데이터도 모두 status가 insert로 전송되게 됩니다.
>만약에 전체 DataSet이 넘어간다면, DataSet의 Row수만큼 DataSet 전체가 함수호출이 되는건가요?
==> 함수 호출이 된다는 의미가 무슨 말인지 모르겠습니다.
여러건이 업데이트된다고해서 request자체가 여러번 일어나는건 아니고 한번에 변화된 row가
서버로 전송되게 됩니다.
>질문 2>
>CSV 파일을 업로드하면, excel_flag 값에 의하여 (2) 부분으로 분기됩니다.
>업로드 하고 아무런 데이터 수정이 없으면 (3) 부분의 insSalesUpload()함수 호출이 되지않습니다.
>하지만, 한건이라도 내용을 수정하면 insSalesUpload()를 호출합니다.
>
>DataSet에 아무런 수정이 없으면 함수호출이 안되나요?
==> 아래쪽에 올라온 질문에서도 답을 했듯이, 데이터셋에 수정이 없는 경우 서버쪽에 request가
전달되지 않습니다.(INPUT타입으로 I옵션을 사용한 경우)
>PS.
>두서없는 질문들입니다. 죄송하며 감사합니다.
>
더 상세한 정보가 필요하시면 약간 정리하셔서 질문을 주세요 ^^
그럼 수고하세요.