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

FireBird Q&A
[4643] Re:같은 구조를 가진 DB의 내용을 다른 DB로 옮기기..
샤프가이리키 [kimin122] 1838 읽음    2013-09-06 12:56
박태성 님이 쓰신 글 :
: A, B 2개의 DB가 거의 같은 테이블을 가지고 있습니다.(테이블의 트리거 내용이 조금 다른 것 빼고는 똑같다고 봐도 무방함)
:
: A DB의 테이블에는 데이타가 들어 있고 B DB에는 내용이 없는 빈 테이블들입니다.
:
: 이 때 A DB의 테이블 데이타를 B DB의 해당 테이블로 옮기고 싶습니다. ( FireBird 2.1 버전을 사용중입니다)
:
: 델파이를 이용해
: qrySource.Sql.Text := 'select * from aaa';
: qrySource.Open;
: while Not qrySoruce.Eof do
: begin
:   qryTarget.Sql.Text := 'insert aaa values(:a, :b, :c....)';
:   qryTarget.Params[0].asString := qrySource.Fields[0].asString;
:   qryTarget.Params[1].asString := qrySource.Fields[1].asString;
:   ....
:   qrySource.Next;
: end;
:
: 이런식으로 할까 구상중인데 테이블수도 많고 각 테이블에 필드도 많아서 이렇게 일일이 퀴리문을 작성하는게
: 비효율적일것 같아서 질문드립니다.
:
: 좀 더 편하게 데이타를 옮길수 있는 방법이 없을까요?
:



안녕하세요. 샤프가이리키 입니다.

---------------------------------------------------------------------------
-- 다음은 시스템 테이블에서 테이블명을 가져오는 구문 입니다.
select RDB$RELATION_NAME
FROM RDB$RELATIONS
WHERE RDB$SYSTEM_FLAG = 0
---------------------------------------------------------------------------
-- 다음은 시스템 테이블에서 컬럼명을 가져오는 구문 입니다.
SELECT    
    RDB$FIELD_NAME
FROM
    RDB$RELATIONS REL
JOIN RDB$RELATION_FIELDS REL_FIELD
    ON REL_FIELD.RDB$RELATION_NAME = REL.RDB$RELATION_NAME
WHERE
    REL.RDB$RELATION_NAME = '테이블 이름'
ORDER BY
    REL_FIELD.RDB$FIELD_POSITION
---------------------------------------------------------------------------

위와 같이 시스템 테이블을 이용하여 동적으로 쿼리를 만들어서 처리 하심이 어떠신지요.

+ -

관련 글 리스트
4605 같은 구조를 가진 DB의 내용을 다른 DB로 옮기기.. 박태성 1983 2013/04/19
4643     Re:같은 구조를 가진 DB의 내용을 다른 DB로 옮기기.. 샤프가이리키 1838 2013/09/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.