Q&A

  • db 저장시 if active then close 이거 하면 어떤가요?
procedure Ttest.execsql();
begin
  with Query1 do
  begin
    if active then close;
   sql.clear;
    sql.add(' insert into test ');
    sql.add(' (col1, col2) ');
    sql.add(' values ');
    sql.add(' ('1', '2') ');
    execsql;

    if active then close;
   sql.clear;
    sql.add(' insert into test ');
    sql.add(' (col1, col2) ');
    sql.add(' values ');
    sql.add(' ('1', '2') ');
    execsql;

    if active then close;
   sql.clear;
    sql.add(' insert into test ');
    sql.add(' (col1, col2) ');
    sql.add(' values ');
    sql.add(' ('1', '2') ');
    execsql;

    if active then close;
   sql.clear;
    sql.add(' insert into test ');
    sql.add(' (col1, col2) ');
    sql.add(' values ');
    sql.add(' ('1', '2') ');
    execsql;
  end;
end;

위처럼 insert를 여러번 하는데 여기
if active then close; 를 가각의 insert 문장하기 전에 각각하는거하고 처음에만 한번 하는거하고
차이가 있나요? 고수님들 부탁드립니다.
1  COMMENTS
  • Profile
    마이크로김 2007.06.29 19:07
    그냥 편하게
    with Query1 do
    begin
          close;
          sql.Clear;
          sql.add();
          ExecSql;
          
          sql.Clear;
          sql.add();
          ExecSql;
          
          sql.Clear;
          sql.add();
          ExecSql;
                  
      에러 나면 rollback 하고 정상처리 되면 commit 하는게 좋지 않을까 저의 생각입니다
    end;