Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
Query한 결과를 다른 테이블에 Insert 또는 Update???
안녕하세요?
Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update 하는 방법을 알고 싶습니다.
참고로 지금 프로젝트를 하나 진행 중인데 '마감'처리 부분에서 필요한 기능이거든요..
3
COMMENTS
....
•
1999.09.21 03:49
호 wrote:
> 안녕하세요?
>
> Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update 하는 방법을 알고 싶습니다.
Oracle 기준입니다
insert into 테이블명 (입력필드1, 입력필드2, ...., 입력필드n)
select 입력필드1, 입력필드2, ..., 입력필드n
0
0
삭제
수정
댓글
이재식
•
1999.09.21 02:55
호 wrote:
> 안녕하세요?
>
> Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update 하는 방법을 알고 싶습니다.
>
> 참고로 지금 프로젝트를 하나 진행 중인데 '마감'처리 부분에서 필요한 기능이거든요..
이재식 wrote :
안녕하세요. 쿼리를 던졌다면 결과셋이 쿼리 컴포넌트에 있겠죠.
그런 그것을 다른 테이블에 Insert, or Update하는 방법은 의외로 쉽습니다.
쿼리를 해서 결과를 가져왔다고 가정합시다.
(그 결과는 Query1에 있다고 합시다, Query1에는 필드 A, B가 있다고 합시다)
그럼 새로운 쿼리 컴포넌트가 필요해요. 이것을 Query2라고 합시다.
Query2에는 필드 A,B가 있다고 합시다.
with Not Query1.eof do
begin
with Query2 do
begin
Close ;
SQL.Clear ;
SQL.Add('Insert into 테이블이름 ') ;
SQL.Add('values(:v1, :v2)') ;
ParamByName('v1').asString := Query1.FieldByName('A').asString ;
ParamByName('v2').asString := Query1.FieldByName('B').asString ;
ExecSQL ;
end ;
Query1.Next ;
end ;
참고로, update는
with Query2 do
begin
Close ;
SQL.Clear ;
SQL.Add('update 테이블이름') ;
SQL.Add('where A = :v1, B = :v2') ;
ParamByName('v1').asString := 위와동일 ;
ParamByName('v2').asstring := 위와동일 ;
ExecSQL ;
end ;
물론 DataBase 컴포넌트를 쓰셔서 트랜잭션 관리(시작, commit, rollback)를
해 주셔야죠.
0
0
삭제
수정
댓글
이건영
•
2000.08.23 23:10
안녕하십니까.. 귀하의 답변을 바탕으로 아래와 같이 코딩을 했습니다.
부끄럽사옵니다만, 이제 겨우 프로그램 입문 3달째..
이 문제에 거의 한달정도 해매고 있습니다. 계속 미루면서 다른거 해 왔었는데.. 이젠 이걸 해결 안하면 안될 정도에 몰렸습니다.
코딩에는 문제가 없이 수행되나 정작 update가 안되고 있습니다.
혹시 귀하의 설명대로 DataBase 컴포넌트를 써서 트랜잭션 관리(시작, commit, rollback)를 안해서 그런거 아닙니까? 학원에서 설명들을때 잘 이해가 안가더니.. 결국 이런데서 맛닥드리는군요..
어떻게 하는지 설명 좀 부탁드립니다.
procedure TForm1.Button4Click(Sender: TObject);
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select l.itemUP from booking b, Library l');
Query2.SQL.Add('where b.bookitem = l.itemName');
Query2.OpenDatabase;
While Not Query2.Eof do //이렇게 쓰면 Query2가 끝이 아니면 계속 반복하라는 뜻은 이해하겠으나.. 처음부터 반복하라는 명령이 별도로 필요하지 않습니까? 안 그러면 데이타 수가 서로 맞지않아 error날 것 같은데..
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('update booking set bookunitprice = :p1');
Query1.ParamByName('p1').Value := Query2.FieldByName('l.itemUP').Value;
Query1.ExecSQL;
Query2.Next;
end;
end;
이재식 wrote:
> 호 wrote:
> > 안녕하세요?
> >
> > Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update 하는 방법을 알고 싶습니다.
> >
> > 참고로 지금 프로젝트를 하나 진행 중인데 '마감'처리 부분에서 필요한 기능이거든요..
>
> 이재식 wrote :
> 안녕하세요. 쿼리를 던졌다면 결과셋이 쿼리 컴포넌트에 있겠죠.
> 그런 그것을 다른 테이블에 Insert, or Update하는 방법은 의외로 쉽습니다.
> 쿼리를 해서 결과를 가져왔다고 가정합시다.
> (그 결과는 Query1에 있다고 합시다, Query1에는 필드 A, B가 있다고 합시다)
>
> 그럼 새로운 쿼리 컴포넌트가 필요해요. 이것을 Query2라고 합시다.
> Query2에는 필드 A,B가 있다고 합시다.
> with Not Query1.eof do
> begin
> with Query2 do
> begin
> Close ;
> SQL.Clear ;
> SQL.Add('Insert into 테이블이름 ') ;
> SQL.Add('values(:v1, :v2)') ;
> ParamByName('v1').asString := Query1.FieldByName('A').asString ;
> ParamByName('v2').asString := Query1.FieldByName('B').asString ;
> ExecSQL ;
> end ;
> Query1.Next ;
> end ;
>
> 참고로, update는
> with Query2 do
> begin
> Close ;
> SQL.Clear ;
> SQL.Add('update 테이블이름') ;
> SQL.Add('where A = :v1, B = :v2') ;
> ParamByName('v1').asString := 위와동일 ;
> ParamByName('v2').asstring := 위와동일 ;
> ExecSQL ;
> end ;
>
> 물론 DataBase 컴포넌트를 쓰셔서 트랜잭션 관리(시작, commit, rollback)를
> 해 주셔야죠.
>
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이진우
1999.09.22 22:56
0
COMMENTS
/
0
LIKES
TDataSet에 변경된 내용이 있는지 알 수 있을런지.....
오이
•
1999.09.21 04:41
2
COMMENTS
/
0
LIKES
Query Component의 두가지 의문사항
이재식
•
1999.09.21 22:01
오이 wrote: > 안녕하세요 ^^; 초보~ > > query component와 Data Source component와 DB Grid만을 가...
순용
•
1999.09.21 18:29
오이 wrote: > 안녕하세요 ^^; 초보~ > > query component와 Data Source component와 DB Grid만을 가...
김종환
•
1999.09.21 04:09
1
COMMENTS
/
0
LIKES
스크롤 되면서 컴포넌트 올릴수 있는것?
구창민
•
1999.09.21 08:59
김종환 wrote: > 정말 오랜 만에 방문 한것 같네요.. > > 판넬에 버튼을 여러개 올려놓으려고 하는데 ...
김태균
1999.09.21 03:27
0
COMMENTS
/
0
LIKES
Oracle에 대한 질문입니다.
초보
1999.09.21 02:55
0
COMMENTS
/
0
LIKES
잘 안풀리네요 도와주세요 (QuickReport)
맹주형
1999.09.21 02:38
0
COMMENTS
/
0
LIKES
텍스트를 테이블로 변환
황현동
•
1999.09.21 02:35
1
COMMENTS
/
0
LIKES
비주얼 베이직 api책을 샀었는데..델파이로..
구창민
•
1999.09.21 09:13
황현동 wrote: > 안녕하세요.. 저는 델파이를 공부하고 있는 학생입니다. > 그런데.. 제가 예전에 비주얼...
송기원
1999.09.21 02:21
0
COMMENTS
/
0
LIKES
다른프로그램의 컨트롤의 Message를 가로챌려면..?
황영일
1999.09.21 01:59
0
COMMENTS
/
0
LIKES
도움이 필요합니다
정진석
1999.09.21 00:46
0
COMMENTS
/
0
LIKES
파라독스 DB에 대하여....
남진명
•
1999.09.21 00:50
2
COMMENTS
/
0
LIKES
(급해요)Oracle DB 내부 Funtion을 Delphi에서 불러오는 방법?
이재식
•
1999.09.21 17:35
남진명 wrote: > > 급한 일 때문에 이렇게 질문을... > > Oracle DB 내부 Funtion을 Delphi에서 불러와 ...
김태균
•
1999.09.21 03:30
Stored Procedure를 사용하면 델파이로 함수를 불러 올 필요없이 해결이 될 것 같은데요....
김혜경
1999.09.21 00:07
0
COMMENTS
/
0
LIKES
컴포넌트 찾기
송기원
•
1999.09.20 23:20
1
COMMENTS
/
0
LIKES
Default Web Browser를 바꾸는 방법..?
김영대
•
1999.09.21 01:46
송기원 wrote: > Internet Explorer나 Netscape처럼 내가 만든 Web Browser를 > Default WebBrowser로 설...
호
•
1999.09.20 23:19
3
COMMENTS
/
0
LIKES
Query한 결과를 다른 테이블에 Insert 또는 Update???
안녕하세요? Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update 하는 방법을 알고 싶습니다. 참고로 지금 프로젝트를 하나 진행 중인데 '마감'처리 부분에서 필요한 기능이거든요..
....
•
1999.09.21 03:49
호 wrote: > 안녕하세요? > > Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update ...
이재식
•
1999.09.21 02:55
호 wrote: > 안녕하세요? > > Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update ...
이건영
•
2000.08.23 23:10
안녕하십니까.. 귀하의 답변을 바탕으로 아래와 같이 코딩을 했습니다. 부끄럽사옵니다만, 이제 겨우 프...
송기원
1999.09.20 23:18
0
COMMENTS
/
0
LIKES
Winsight32 Utility가 이상합니다...
김도수
1999.09.20 22:22
0
COMMENTS
/
0
LIKES
TCP/IP PRINTER 제어?
박정모
1999.09.20 22:11
0
COMMENTS
/
0
LIKES
C++ Builder에서 with문이 어떻게?
이현철
1999.09.20 22:11
0
COMMENTS
/
0
LIKES
HTML 형식의 메일을 지원하는 방법..?
진요한
•
1999.09.20 21:12
1
COMMENTS
/
0
LIKES
폼에 이미지를 바둑판 형태로 뿌릴 수 있나요?
김영대
•
1999.09.21 01:43
// Image1.Picture.Bitmap 에 비트맵이 있다고 가정하면 // 아래 예제는 폼에 title 로 그리게 됩니다 ...
정근수
•
1999.09.20 21:09
1
COMMENTS
/
0
LIKES
Drag & Drop 에 관하여..
구창민
•
1999.09.21 00:50
정근수 wrote: > 두개의 CheckListBox (Box1, Box2)가 있습니다... > > Box1, Box2 > 1 1 > 2 ...
호
1999/09/20 23:19
Views
603
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 안녕하세요?
>
> Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 또는 Update 하는 방법을 알고 싶습니다.
Oracle 기준입니다
insert into 테이블명 (입력필드1, 입력필드2, ...., 입력필드n)
select 입력필드1, 입력필드2, ..., 입력필드n