INSERT 및 UPDATE시
저장되는 값이 1개의 테이블에만 있는게 아니라서요...
에...그러니깐...
최소 여러개의 EDIT박스로 JOIN된 값을 불러놓고...그걸 다시 저장하려면...(버튼 하나로)
with PAQuery3 do
begin
Close;
Sql.Clear;
Sql.Add(' UPDATE TABLE1 SET com = :com, tel = :tel, ');
......
ParamByName('COLUMN1').AsString := PAEdit11.Text;
......
try
Execsql;
ShowMessage('수정되었습니다');
PAQuery2.Close;
PAQuery2.Open;
except
ShowMessage('DBerror');
Exit;
end;
이걸로 EDIT박스의 몇개값은 저장되지만...일부는 다른 테이블이라 저장을 못하고 있는데요
한번에 이걸 다 저장시키려면 어떻게 해야 될런지요??
아니...제가 생각하는 방식이 가능한 방법인지요??
제가 생각하는 방식은..ㅡ_ㅡa
with PAQuery3 do
begin
Close;
Sql.Clear;
Sql.Add(' UPDATE TABLE1 SET com = :com, tel = :tel, ');
......
ParamByName('COLUMN1').AsString := PAEdit11.Text;
......
end;
with PAQuery4 do
begin
Close;
Sql.Clear;
Sql.Add(' UPDATE TABLE1 SET com = :com, tel = :tel, ');
......
ParamByName('COLUMN1').AsString := PAEdit11.Text;
......
end;
try
Execsql;
ShowMessage('수정되었습니다');
PAQuery2.Close;
PAQuery2.Open;
except
ShowMessage('DBerror');
Exit;
end;
이렇게 두개를 묶어서..ㅡ,.ㅡ;;
가능한 방법인가요?? 저의 허접함에 놀라지 마시고...좀 도와주세요...ㅠ_ㅠ
묶어서 처리 할 수 있습니다.
처리할 건이 그러니깐 테이블 수만큼 받은값으로 UPDATE 처리 해야된다면
운 좋게 업데이트할 테이블의 필드이름이 똑같다면 FOR 루프를 돌면
for i :=0 to 업데이트 개수 do begin
WITH Query1 DO TRY
Close;
Sql.Clear;
Sql.Add(' UPDATE TABLE1 SET com = :com, tel = :tel, ');
--> 테이블이름을 배열로 저장해서 변수 i로 쿼리문을 조정해도 되겠네요
필드 이름두요.
Params[0].AsString := 수정문장;
Params[1].AsString := 수정문장;
ExecSQL;
EXCEPT
ShowMessage('DBerror');
Exit;
END;
end;
위에꺼 부담되면 이렇게 해도 괜찮겠네요.
WITH Query1 DO TRY
Close;
Sql.Clear;
Sql.Add(' UPDATE TABLE1 SET com = :com, tel = :tel, ');
ParamByName('com').AsString := PAEdit11.Text;
ParamByName('tel').AsString := PAEdit11.Text;
ExecSQL;
Close;
Sql.Clear;
Sql.Add(' 다른테이블 업테이트 쿼리문 ');
Params[0].AsString := 수정문장;
Params[1].AsString := 수정문장;
ExecSQL;
Close;
Sql.Clear;
Sql.Add(' 또 다른테이블 업테이트 쿼리문 ');
Params[0].AsString := 수정문장;
Params[1].AsString := 수정문장;
ExecSQL;
EXCEPT
ShowMessage('DBerror');
Exit;
END;