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

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------

수고 많으십니다.

 

dbgo의 ADO query를 하기의 loop에 사용시 약 20초 이상의 시간이 걸립니다.

ADOConnection의 트랜젝션 사용시 시간을 절약할 수 있다고 들었는데 구체적인 사용법을 몰라서 문의 드립니다

 

loop를 돌려 반복하면서 ADO query를 사용하여 조건을 검색하여 테이블을 만들어 가는 기능이며 넘 시간이 걸려서  loop의 query 값을 저장해 놓았다가 한꺼번에 처리 하는것이 transaction이라고 들었습니다.

 

하기의 소스  loop를 어떻게 Transaction으로 한꺼번에 처리하여 시간을 절약흘 수 있을지 고수님의 조언 부탁드립니다

 

소스의 Loop는 최종 1520번 반복합니다.

 

제가 사용한 소스는 하기와 같습니다.

 

 

 

 Level :=  FormTestDB.ADOConnection1.BeginTrans;   // Level은 1로 표시됨.
 try
   

    중간 생략

 

       for i:= 0 to cnt-1 do       // cnt = 520
        begin

          
            ADOQuery1.SQL.Clear;
            str := 'Select * from ' + TableName + ' order by num ASC';
            ADOQuery1.SQL.Add(str);
            ADOQuery1.Active := true;

 

             for j := 1 to 3 do
             begin

                Attr_id := j;
                inc(RecordNo);

                 ADOQuery1.SQL.Clear;
         
                   str:= 'INSERT INTO ' + TableName + '(num, Obis_Code, OBIS_A, OBIS_B, OBIS_C, OBIS_D, OBIS_E, OBIS_F, Class_Id, Attribute_Id, Version_No, Descript, Data_Type, Data_Size, Data ) Values(' +
                   IntToStr(RecordNo) + ', "' + obis_code + '", ' + IntToStr(ObisA) + ', ' + IntToStr(ObisB) + ', ' + IntToStr(ObisC) + ', ' + IntToStr(ObisD) + ', '  +
                   IntToStr(ObisE) + ', ' + IntToStr(ObisF) + ', '  + IntToStr(ClassId) + ', ' + IntToStr(Attr_id) + ', ' +  IntToStr(VerNo) + ', "' + desc + '", "' +
                   strDataType + '", ' + IntToStr( DataSize ) + ', "' + strData + '" )';

 

                  ADOQuery1.SQL.Add(str);
                  ADOQuery1.ExecSQL;
          
         end;
   
      end;

 

      ADOConnection1.CommitTrans;
 except
    ON E : Exception do  ADOConnection1.RollbackTrans;
 end;

 

감사합니다.

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 17208
공지 유용한 관련 사이트 관리자2 2014.03.20 56084
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99523
1879 [질문] FMX화면에서 싸인이 가능한가요? [2] 화현 2021.07.22 309
1878 모바일에서 sqlite를 사용하고 싶은데요 [1] 헨씀히포 2016.02.10 309
1877 폼을 생성할때 ItemIndex를 설정하면 combobox1change 이벤트발생. 오류인듯 -_- [2] 미스터리 2018.08.29 310
1876 델파이 시애틀 사용자입니다. MariaDB [2] 시리온느 2019.06.25 310
» ADO Query를 사용시 시간 걸리는 문제의 건 한태수 2020.01.14 310
1874 xe7 폼 사이즈 나 폼위치를 자유자래로 지정할수 없나요? [2] file 라빌레나 2017.03.19 311
1873 델파이에서 mysql 테이블에 데이터를 암호화하여 저장하기 superman 2015.07.28 311
1872 [bcciosarm64 Fatal Error] CoreFoundation.h(12): 'stdarg.h' file not found [1] hawkjgs 2016.04.06 311
1871 안드로이드에서 앱 설치 시 External에 저장하게 하는 방법입니다. file 푸른솔 2017.01.05 312
1870 도킹창 이동시 버벅거리는 현상 [1] 손승규 2017.04.18 312
1869 10.2 Tokyo에서 TFrame등의 Animation 문제 해결방법. [5] 푸른솔 2017.12.29 312
1868 라인 짤림 현상 문의드립니다. file 돌팅 2018.04.10 312
1867 쇼핑몰 결제시스템 연동 문의 지병철 2018.04.23 312
1866 ApeSuite 사용법 SSI 2021.06.08 312
1865 안드로이드, Win CE관련 질문 드립니다. [1] 공감 2016.10.24 313
1864 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 2 - Exercise 1 [2] 관리자 2016.04.15 313
1863 XE7에서 개발한 앱을 XE8에서 컴파일시 질문입니다. [1] 희망나라 2015.05.09 314
1862 Delphi 10.4 iOS Camera 실행 오류 [1] 로로봉 2020.08.19 314
1861 TFDMemTable 필드 추가 후 새로 추가 할 때 추가 안되요. [2] midas 2020.02.29 315
1860 System.Bluetooth.TBluetoothGattCharacteristic.SetValue 질문 [1] 민은기 2015.04.15 315