자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 바쁜 와중에도 답변을 주시는 분들께 감사 댓글 필수
-----------------------------------------------------------------------------------------------

 

미들웨어로 XML을 받아서 델파이 10.1 베를린 에서 구현

 

  코드 입력후 검색버튼 클릭하면 코드명 표시해주는 프로그램 입니다.

     코드: 105146

     코드명:  [삭제]드립서버300ML[어라운지]EA   

 

1. 윈도우 플랫폼에서 프로그램 실행을 하고 

   코드: 105146 입력 => 검색버튼 클릭

   "[삭제]드립서버300ML[어라운지]EA"  로 정상적으로 표시되는데

 

   플랫폼을 안드로이드로 변경하고

   스마트폰에서 프로그램실행해서 검색버튼을 클릭하면 <그림2>와 같이 오류가 나는데 여러방법을 사용해봐도 

   해결이 안되어서 문의드립니다.

    

 

<그림1> 플랫폼 윈도우에서 실행 

%ED%99%94%EB%A9%B41.png?inlineContentTyp 

 

<그림2> 플랫폼: 안드로이드에서 실행하고 검색버튼을 클릭하면 오류남

%ED%99%94%EB%A9%B42.png?inlineContentTyp 

 

 

------- source ---------------

 

procedure TForm1.Button1Click(Sender: TObject);

var

  L_IPGO_CNF, gLOGIN_CHEK,Maeil_URL : String;

 

  XMLBodyNode, XMLDataNode, XMLListNode, XMLRowNode, XMLColumnNode: IXMLNode;

  Node: IXMLNode;

 

  PutData : TStringStream;

  DResult : TStringStream;

  Indy    : TIdHTTP;

 

  ii, iCnt : integer;

  Key_Name, Key_Value : String;

  L_RETN_VLUE : String;

 

  XMLRqst     : String; // 170921

  IdCookieManager: TIdCookieManager; // 170921

begin

  XMLRqst := '<root company="belvew"/>'; // 170921

  Maeil_URL  := 'http://url-ip/DelphiCommand';

 

  if ED_ITM_CD.Text = '' then

  begin

    ED_ITM_NM.Text := '';

    Exit;

  end;

 

  PutData := TStringStream.Create();

  DResult := TStringStream.Create(XMLRqst, TEncoding.UTF8); // UTF8

 

  Indy := TIdHttp.Create;

  Indy.CookieManager   := idCookieManager;

  Indy.ReadTimeout     := 60000;{ IdTimeoutInfinite; }    // 170921

  Indy.ConnectTimeout  := 60000;                          // 170921

  Indy.HandleRedirects := True;                           // 170921

  Indy.Compressor := TIdCompressorZLib.Create(Indy);      // 170921

 

  Try

    Memo1.Lines.text := 'SELECT NVL(ITM_CD,' + '''' + 'Z' + '''' + ')' + ' ITM_CD' +

    ' ,NVL(ITM_NM,' + '''' + 'Z' + ''''+ ')' + ' ITM_NM' +

    ' FROM A_ITM_TEST' +

    ' WHERE ITM_CD = ' + ''''+ ED_ITM_CD.Text + '''';

 

 

    // 각 인자들을 &로 연결시켜줍니다.

    Indy.Request.ContentType := 'application/x-www-form-urlencoded';

    gLOGIN_CHEK := '&user_idid=' + '12352' + '&sabn_pswd=' + '11';

    PutData.WriteString('command=DelphiQueryCommand' + gLOGIN_CHEK +'&query=' + HTTPEncode(Memo1.Text));

    // POST시킵니다. 리턴된 결과 XML은 DResult에 저장됩니다.

    Indy.Post(Maeil_URL,PutData,DResult);

 

    XMLDoc.LoadFromStream(DResult); //===> 이부분에서 오류납니다.

 

    XMLDoc.Active:=True;

    XMLBodyNode:= XMLDoc.ChildNodes.FindNode('result');

    XMLDataNode:= XMLBodyNode.ChildNodes.FindNode('status_detail');

    XMLListNode:= XMLDataNode.ChildNodes.FindNode('list');

 

 

    for ii := 0 to XMLBodyNode.ChildNodes.Count - 1 do

    begin

      Memo1.Lines.Add('i');

      if XMLBodyNode.ChildNodes.Nodes[ii].NodeName = 'status'  then

      begin

        if XMLBodyNode.ChildNodes.Nodes[ii].NodeValue = 'OK' then

        begin

            //처리로직

          if XMLListNode.ChildNodes.Count > 0 then

          begin

            XMLRowNode:= XMLListNode.ChildNodes.FindNode('row');

 

            repeat

 

              begin

                XMLColumnNode:= XMLRowNode.ChildNodes.FindNode('column');

 

                repeat

                  Key_Name := '';

                  Key_Value := '';

 

                  Key_Name := XMLColumnNode.AttributeNodes.Get(0).NodeValue;

                  Key_Value := XMLColumnNode.ChildNodes[0].NodeValue;

 

                  if UpperCase(Key_Name) = 'ITM_CD' then

                  begin

                    if Key_Value = 'Z' then ED_ITM_CD.Text := ''

                    else ED_ITM_CD_1.Text := Key_Value;

                  end

                  else

                  if UpperCase(Key_Name) = 'ITM_NM' then

                  begin

                    if Key_Value = 'Z' then ED_ITM_NM.Text := ''

                    else ED_ITM_NM.Text := Key_Value;

                  end;

 

                  XMLColumnNode := XMLColumnNode.NextSibling;

 

                until XMLColumnNode = nil;

              end;

 

              XMLRowNode := XMLRowNode.NextSibling;

 

            until XMLRowNode = nil;

          end

          else

          begin

          end;

        end

        else

        if XMLBodyNode.ChildNodes.Nodes[ii].NodeValue = 'LOGIN_FAIL' then   // LOGIN_FAIL시 다시 로그인

        begin

          ShowMessage('서버와의 접속이 끊겼습니다. 다시 로그인 하세요');

        end

        else

        if XMLBodyNode.ChildNodes.Nodes[ii].NodeValue = 'ERROR' then

        begin

          ShowMessage(XMLBodyNode.ChildNodes.Nodes[0].NodeValue);

        end;

      end;

    end;

 

  finally

    // 메모리에서 해제

    PutData.Free;

    DResult.Free;

    Indy.Free;

  end;

end;

 
번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15769
공지 유용한 관련 사이트 관리자2 2014.03.20 54583
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 98004
813 Delphi FDQuery - OnCalcFields 이벤트에서 RecNo 부여시 0,2,3 이렇게 나옵니다 [1] 짧굵 2017.04.13 514
812 OPEN API 를 이용하여 개발하려고 합니다. [2] 카이로스 2015.12.12 515
811 이미지 StretchDraw문 사용시 글자 깨져 다른 방법 좀 알려주세요? [1] 루카 2018.03.13 516
810 시애틀 관련 패키지 설치 문의 입니다. [1] 시애틀커피 2020.02.25 516
809 VCL어플리케이션 개발 중 GridPanel 질문드립니다! [2] file 육식육식 2020.04.10 516
808 DoubleBuffered 속성을 True 로 설정하고 Picture.Bitmap 를 참조한 상태에서 TImage 에서 Bitmap 이외의 파일을 로드할 경우 이미지가 정상적으로 표시되지 않습니다. [1] file DarkRyu 2020.07.10 516
807 Delphi 컴파일 [1] radio 2015.03.03 516
806 ios 앱 빌드 관련 문의 [2] 초보개발자 2021.05.03 516
805 [FireDAC][Phys][Ora]-315. Cannot get vendor library entry point[s]. 오류 대처방법 [1] 험프리 2017.01.11 517
804 임베디드 안드로이드기기 디버깅 [9] hsson 2015.06.25 518
803 delphi로 .Net Framework로 만들어진 WCF서비스를 사용할수 있는지 문의드립니다. 베스트드레곤 2015.03.02 518
802 자바 소스를 델파이로 바꿔주는 툴은 있나요? [1] 화이부동 2016.12.13 519
801 livebinding별표시 쉽읍니다. [1] file wallas 2015.04.07 519
800 어제부터 델파이 실행시 보안 경고 가 뜨네요 [1] file 미스터몽키 2018.07.12 521
799 Decimalseparator문의 [2] 똘귀아빠 2015.10.16 524
798 윈도우 8에서 10으로 업데이트 후 인터베이스 접속에 어려움을 겪고 있습니다. [1] file 손보라 2016.06.15 525
797 델파이 IDE 관리자모드 실행 키위 2019.03.05 526
796 델파이에서 dll 사용 관련 문의합니다. [1] ozz 2020.02.20 526
795 (공유) 컴파일 시 E1026 File not found: 'Controls.res' 오류가 발생합니다. file 험프리 2020.08.06 528
794 인터넷 취약점 문제해결을 위해 SFTP 방식을 지원하고자 합니다. 험프리 2017.04.25 529