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

C++빌더 Q&A
C++Builder Programming Q&A
[29549] [검증요청] BDE에서 여러 개의 Row를 동시에 INSERT 하는 것?
정호근 [] 1035 읽음    2004-04-28 15:08
동일한 테이블에 여러 개의 Row를 한꺼번에 INSERT해야 할 상황입니다.
SQL 문으로 INSERT 문장으로 넣으려고 하니 너무 비효율적이여서 (동일 문장을 여러번 수행)
동시에 넣으려고 로직을 다음과 같이 수정했습니다.
이것이 타당성이 있는 지요?

테스트 해보니까 두번째 append()문장을 만났을 때 첫번째 DB에 집어 넣어 버립니다.

    DM->Table01->Filter = " uid < 0 ";  // 일단 dummy하게 select함.
    DM->Table01->Open();

    DM->Table01->Append();

    DM->Table01->FieldValues["uid"]  = 5;
    DM->Table01->FieldValues["name"] = "이은규";
    DM->Table01->FieldValues["num"]  = 125;
    DM->Table01->FieldValues["addr"] = "---";

    DM->Table01->Append();

    DM->Table01->FieldValues["uid"]  = 6;
    DM->Table01->FieldValues["name"] = "이은규";

    DM->Table01->Post(); // 이곳에서 두 개의 row가 모두 insert되었으면 합니다.

좋은 방법 없을까요?

sql = "insert into xTest ..."
DM->Query->Active = false;
DM->Query->SQL->Clear();
DM->Query->add(sql);
DM->Query->ExecSQL();

sql = "insert into xTest ..."
DM->Query->Active = false;
DM->Query->SQL->Clear();
DM->Query->add(sql);
DM->Query->ExecSQL();

이렇게 하는 방법은 너무 비 효율적인 방법이라서 다른 방법이 있는가 해서요?
좋은 답변 바랍니다.
감사합니다.

+ -

관련 글 리스트
29549 [검증요청] BDE에서 여러 개의 Row를 동시에 INSERT 하는 것? 정호근 1035 2004/04/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.