안녕하십니까..
.
다름이 아니라
쿼리를 사용하여 다른 두테이블의 필요한 컬럼을 선택하여서 다른 또하나의 테이블에 썰려고 합니다.
이때 잘 몰라 가지고 테이블도 세개나 쓰고 쿼리도 두개나 쓰고 하였습니다. 고수님들의 조언을 듣고저 이렇게 소스와 같이 올리니..
보시고 방법을 갈켜 주시면 감사 하겠습니다.
현재는 다른 또하나의 테이블에 연결만 된상태입니다.
[소스]
procedure Tfrmjoin.Button3Click(Sender: TObject);
var wk_cd:string;
var qk_cd:string;
var a_id:string;
var a_uname:string;
var a_acnumber:string;
var a_dept:string;
var a_acktime:string;
begin
wk_cd:=Table1CARDNUM.FieldName;
qk_cd:=table2cardid.fieldname;
WITH Query1 do BEGIN
CLOSE;
SQL.Clear;
SQL.ADD('SELECT *');
sql.add(' FROM cardid, alarm, test_bms');
Sql.Add(' WHERE :qkcd = :wkcd');
parambyname('wkcd').asstring := wk_cd;
parambyname('qkcd').asstring := qk_cd;
OPEN;
FIRST;
END;
with frmjoin.Query1 do begin
Sql.Clear;
Sql.Add('INSERT INTO test_bms ( id, uname, acnumber, dept, acktime)');
Sql.Add(' VALUES (:a_id, :a_uname, :A_acnumber, :A_dept, :A_acktime)');
// Param Data
ParamByName('A_id').asstring := Table2CARDID.text;
ParamByName('A_uname' ).asstring := Table2NAME.text;
ParamByName('A_acnumber' ).asstring := Table2ANUMBER.text;
ParamByName('A_dept' ).asstring := Table2DEPT.text;
ParamByName('A_acktime' ).asstring := Table1ATIME.text;
ExecSQL;
end;
end;
procedure Tfrmjoin.Button2Click(Sender: TObject);
begin
frmjoin.close;
end;
procedure Tfrmjoin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ACTION:=caFree;
end;
end.
WITH Query1 do BEGIN
...
FIRST;
END;
이렇게 하셨으니까... Insert도 마지막까지 하셔야 할것 같군요...
while not Query1.Eof do
begin
with frmjoin.Query1 do
begin
...
Sql.Add('INSERT INTO test_bms ( id, uname, acnumber, dept, acktime)');
...
ExecSQL;
end;
Query1.Next;
end;
이런식으로요...
병아리 wrote:
> 안녕하십니까..
> .
> 다름이 아니라
> 쿼리를 사용하여 다른 두테이블의 필요한 컬럼을 선택하여서 다른 또하나의 테이블에 썰려고 합니다.
> 이때 잘 몰라 가지고 테이블도 세개나 쓰고 쿼리도 두개나 쓰고 하였습니다. 고수님들의 조언을 듣고저 이렇게 소스와 같이 올리니..
> 보시고 방법을 갈켜 주시면 감사 하겠습니다.
> 현재는 다른 또하나의 테이블에 연결만 된상태입니다.
> [소스]
>
> procedure Tfrmjoin.Button3Click(Sender: TObject);
> var wk_cd:string;
> var qk_cd:string;
> var a_id:string;
> var a_uname:string;
> var a_acnumber:string;
> var a_dept:string;
> var a_acktime:string;
>
> begin
> wk_cd:=Table1CARDNUM.FieldName;
> qk_cd:=table2cardid.fieldname;
>
> WITH Query1 do BEGIN
> CLOSE;
> SQL.Clear;
> SQL.ADD('SELECT *');
> sql.add(' FROM cardid, alarm, test_bms');
> Sql.Add(' WHERE :qkcd = :wkcd');
> parambyname('wkcd').asstring := wk_cd;
> parambyname('qkcd').asstring := qk_cd;
> OPEN;
> FIRST;
> END;
>
> with frmjoin.Query1 do begin
> Sql.Clear;
> Sql.Add('INSERT INTO test_bms ( id, uname, acnumber, dept, acktime)');
> Sql.Add(' VALUES (:a_id, :a_uname, :A_acnumber, :A_dept, :A_acktime)');
> // Param Data
> ParamByName('A_id').asstring := Table2CARDID.text;
> ParamByName('A_uname' ).asstring := Table2NAME.text;
> ParamByName('A_acnumber' ).asstring := Table2ANUMBER.text;
> ParamByName('A_dept' ).asstring := Table2DEPT.text;
> ParamByName('A_acktime' ).asstring := Table1ATIME.text;
>
> ExecSQL;
> end;
>
> end;
>
> procedure Tfrmjoin.Button2Click(Sender: TObject);
> begin
> frmjoin.close;
> end;
>
> procedure Tfrmjoin.FormClose(Sender: TObject; var Action: TCloseAction);
>
> begin
> ACTION:=caFree;
> end;
>
> end.
>