레코드에 대해서 update 를 하려구 하는데여..
어떤 Table 에 필드가 만약에 100 라면...
update Tablename set
abc = 'aaa',
abd = 'aaa',
abe = 'aaa',
abf= 'aaa',
abg = 'aaa',
aba = 'aaa',
abz = 'aaa',
.
.
.
ab = 'aaa'
where 조건
이런식으로 100 개의 필들들을 일일이 코딩해야 하잔하요..
그러지 말고.. 간다하게 insert 문처럼 값만 일력하던지 아니면
그런게 있나여... field 에 대한 주소가 있나 해서여
첫번째 필드는 예를 들어 Field[0], Field[1] 이런식으로 있는지 없는디
모르지만 그러면
table 은 이런씩으로 했는데요.. query 문으로는 어찌해야 하나여...
DM_2.T_MoneyA.Append
DM_2.T_MoneyA.Fields[0].AsString := wEdit2.Text;
For I := 1 To 60 Do
DM_2.T_MoneyA.Fields[I].AsFloat := TwNumEdit(FindComPonent
('wNumEdit' + IntToStr(I))).Value;
DM_2.T_MoneyA.Post;
query 컴포넌트로는 어찌...
for 으로 필드면을 써주면..
델파이 소쓰에서 상
query1.Close;
query1.Sql.Clear;
query1.sql.Add('update tablename set');
for I := 0 to 100
begin // 여그는 어쩌고 저쩌고.. 이런씩으로....
field[i] := TEdit(FindComPonent('Edit' + IntToStrI))).Value;
end;
where 조건
테이블 콤포넌트에서 했던것과 같이 사용할 수 있습니다.
Query 콤포넌트의 sql 속성에는 select 문을 작성하고
폼에 TUpdateSQL 컴포넌트를 올려놓으신후
Query 의 UpdateObject 속성에 TUpdateSQL 컴포넌트를 연결하면
창이 하나뜨는데 거기에서 제너레이트 버튼 누르면
insert, update, delete 문이 만들어 집니다.
그러구서 그냥 TTable 처럼 쓰면됩니다.
어떤이들은 필드수가 많은 테이블의 insert 문 이나 업데이트문 만
들기 구찮을때 임시로 TUpdateSQL 을 올려놓고 거기서
제너레이트 시켜서 해당 문을 복사하는 용도로 사용하기도 하는데
원래의 컴포넌트 목적은 아니죠..
암튼 TUpdateSQL 을 사용하면 Join 걸린 것도 TTable처럼 사용
할 수 있어서 편해요....
TUpdateSQL 을 ChachedUpdate 와 같이 쓰면 궁합이 괞찮죠....
그럼 즐프하세요