Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14960] AdvStringGrid 셀에 내용 Merge문으로 Insert/Update 할때 오류
김상우 [theif1004] 2019 읽음    2014-01-24 09:51
function TInsaCard1.Update_mode2 : Boolean;
var
  i,j,k,l : Integer;
  p_no : string;
  p_no1 : array of string;
  p_no2 : array of string;
begin
  Result := False;
  inherited;
  SetLength(p_no1,2);
  SetLength(p_no2,2);
  try
    advstrngrd1.BeginUpdate;
    with orqry2 do
    begin
      for j := 1 to advstrngrd1.RowCount -1 do
      begin
        Close;
        SQL.Clear;
        SQL.ADD('MERGE INTO TB_INSA_COM A USING                     ' +
                '    (SELECT *                                      ' +
                '      FROM TB_INSA_DEV                             ' +
                '     WHERE PERSON_NO = :PERSON_NO1                 ' +
                '    ) B ON (A.PERSON_NO = B.PERSON_NO)             ' +
                'WHEN MATCHED THEN                                  ' +
                '       UPDATE                                      ' +
                '              SET COM_NAME = :COM_NAME1,           ' +
                '              DAY_C = :DAY1,                       ' +
                '              GRADE = :GRADE1,                     ' +
                '              DEF_C = :DEF1 WHEN NOT MATCHED THEN  ' +
                '       INSERT                                      ' +
                '              (                                    ' +
                '                  COM_NAME,                        ' +
                '                  DAY_C,                           ' +
                '                  GRADE,                           ' +
                '                  DEF_C,                           ' +
                '                  PERSON_NO                        ' +
                '              )                                    ' +
                '              VALUES                               ' +
                '              (                                    ' +
                '                  :COM_NAME2,                      ' +
                '                  :DAY2,                           ' +
                '                  :GRADE2,                         ' +
                '                  :DEF2,                           ' +
                '                  :PERSON_NO2                      ' +
                '              )                                    ' +
                '              ; ' );

        if advstrngrd1.Cells[1,j] = '' then
        begin
          ShowMessage('수정할 데이터가 없습니다.');
          Exit;
        end
        else
          ParamByName('PERSON_NO1').AsString := advstrngrd1.Cells[1,j];
          ParamByName('COM_NAME1').AsString  := advstrngrd1.Cells[2,j];
          ParamByName('DAY1').AsString       := advstrngrd1.Cells[3,j];
          ParamByName('GRADE1').AsString     := advstrngrd1.Cells[4,j];
          ParamByName('DEF1').AsString       := advstrngrd1.Cells[5,j];

          ParamByName('PERSON_NO2').AsString := advstrngrd1.Cells[1,j];
          ParamByName('COM_NAME2').AsString  := advstrngrd1.Cells[2,j];
          ParamByName('DAY2').AsString       := advstrngrd1.Cells[3,j];
          ParamByName('GRADE2').AsString     := advstrngrd1.Cells[4,j];
          ParamByName('DEF2').AsString       := advstrngrd1.Cells[5,j];

          ExecSQL;
      end;
    end;
    advstrngrd1.EndUpdate;
    Result := True;
  except
    On E:Exception do
    begin
       ShowMessage('오류'+ E.Message);
       orsn2.Rollback;
       Exit;
    end;
  end;
end;


머가 문제일까요?


+ -

관련 글 리스트
14960 AdvStringGrid 셀에 내용 Merge문으로 Insert/Update 할때 오류 김상우 2019 2014/01/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.