[질문]"s6763" 님 고맙습니다.
저가 해석력 이 부족해서 동적 테이블에서 테이블 생성에서 테이블 생성후 필드만 증감하는 법을 알고 싶습니다
s6763 님 가르쳐준 방법이 이해가 안가서
송구스럽게도 다시한번 이렇게 글을 올립니다.
아래의 소스를 참고하셔서 가르쳐 주시면 감사 감사;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
////자동즐가 필드 만들기 소스
procedure TF_varim.BitB_tc5Click(Sender: TObject);
var
Tablename:string; a,i,count:Integer;
Itemlist: TStringList;
begin
//------------------------------------------------------------------------------//
//------------------------------------------------------------------------------//
with Dm.Q_basepay do
begin
close; //다른 테이블으 레코드 수를 체크하느 루틴
sql.Clear;
sql.add('select var_div from pyvarim');
sql.add('where var_div="E"');
active:=true;
end;
a := Dm.Q_basepay.RecordCounT;
With Dm.T_ptaxm do begin // 테이블의 존재 유무를 검사
Itemlist:=TStringList.Create;
Session.GetTableNames('Pay2000','',False,False,ItemList);
If Itemlist.IndexOf(Tablename)>=0 then
Begin
Itemlist.free;
exit;
end;
Itemlist.free;
Close;
Tablename:='pyptaxm';
Tabletype:=ttParadox;
with FieldDefs do begin
clear;
Add('Ptax_suppdiv',ftString,1,False); //지급구분
Add('Ptax_suppym',ftInteger,0,False); //지급년도
Add('Ptax_codenum',ftString,8,False); //사원번호
//테이블 안의 필드를 위 의 다른 테이블 레코드 수만큼 증가시킨다
// 이때 다른 테이블의 레코드 즉 자료의 수가 변동이 있을때 문제임
// 기존자료는 보존하고 새로운 필드만 추가해야함
FOR i := 1 TO a do
begin
Add('ptax_comm'+INTTOSTR(i),ftFloat,0,True); //공제항목
end;
end;
with IndexDefs do
begin
clear; //필드정의 각각
Add('Field1Index','Ptax_suppdiv;Ptax_suppym;Ptax_codenum',[ixPrimary,ixUnique]); //필드의 인덱스 정의
end;
CreateTable;
open;
end;
//위에서 정의된 필드의 디비그리드의 칼럼의 내용 이름 필등명 색등을 정의한다
>
> 소스는 ========================================================
> new_column := DG_Temp.columns.Add; //부서적요 field
> new_column.FieldName := 'jukyo';
> new_column.Color := cl3DLight;
> New_column.AlwaysShowEditButton := True;
> New_column.EndEllipsis := True;
> New_column.ButtonStyle := cbsEllipsis;
> ===============================================================
>
아래와 같이 Clear를 사용해 보세요.
with DBGrid1 do begin
Columns.BeginUpdate;
Columns.Clear;
Columns.Add;
Columns[0].FieldName := 'First';
Columns[0].Title.Caption := '첫번째필드';
Columns[0].Width := 130;
Columns[0].Color := $00D0FFFF;
Columns.Add;
Columns[1].FieldName := 'First';
Columns[1].Title.Caption := '두번째필드';
Columns[1].Width := 130;
Columns[1].Color := $00D0FFFF;
추가하고픈 만큼 추가...
Columns.EndUpdate;
end;
>
> 디비그리드에 생성되어있는 모든 컬럼을 동적으로 삭제하는 방법을 알려주세여.....
end;
*****************************문제는 여기서입니다
증가된 파일을 체크후 증감하여야 합니ㅏㄷ.
제목: Re: [Q]동적 테이블 생성에서 테이블은 그대로 두고 필드수만 증가하는 법
+ 새로운 글입니다.
--------------------------------------------------------------------------------쿼리문으로 하세요.procedure change_field;
var s: string;
begin
s:='alter table kkk.db drop field1, add field2 char(30)';
with query1 do begin
close;
sql.clear;
sql.add(s);
execSQL;
end;
end; 이전:
> [질문]"s6763" 님 고맙습니다.
> 저가 해석력 이 부족해서 동적 테이블에서 테이블 생성에서 테이블 생성후 필드만 증감하는 법을 알고 싶습니다
>
> s6763 님 가르쳐준 방법이 이해가 안가서
> 송구스럽게도 다시한번 이렇게 글을 올립니다.
>
> 아래의 소스를 참고하셔서 가르쳐 주시면 감사 감사;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> ////자동즐가 필드 만들기 소스
>
> procedure TF_varim.BitB_tc5Click(Sender: TObject);
> var
> Tablename:string; a,i,count:Integer;
> Itemlist: TStringList;
>
> begin
>
> //------------------------------------------------------------------------------//
> //------------------------------------------------------------------------------//
> with Dm.Q_basepay do
> begin
> close; //다른 테이블으 레코드 수를 체크하느 루틴
> sql.Clear;
> sql.add('select var_div from pyvarim');
> sql.add('where var_div="E"');
> active:=true;
> end;
>
> a := Dm.Q_basepay.RecordCounT;
>
> With Dm.T_ptaxm do begin // 테이블의 존재 유무를 검사
> Itemlist:=TStringList.Create;
> Session.GetTableNames('Pay2000','',False,False,ItemList);
> If Itemlist.IndexOf(Tablename)>=0 then
> Begin
> Itemlist.free;
> exit;
> end;
> Itemlist.free;
>
> Close;
> Tablename:='pyptaxm';
> Tabletype:=ttParadox;
>
> with FieldDefs do begin
> clear;
> Add('Ptax_suppdiv',ftString,1,False); //지급구분
> Add('Ptax_suppym',ftInteger,0,False); //지급년도
> Add('Ptax_codenum',ftString,8,False); //사원번호
> //테이블 안의 필드를 위 의 다른 테이블 레코드 수만큼 증가시킨다
> // 이때 다른 테이블의 레코드 즉 자료의 수가 변동이 있을때 문제임
> // 기존자료는 보존하고 새로운 필드만 추가해야함
> FOR i := 1 TO a do
> begin
> Add('ptax_comm'+INTTOSTR(i),ftFloat,0,True); //공제항목
> end;
> end;
>
> with IndexDefs do
> begin
> clear; //필드정의 각각
> Add('Field1Index','Ptax_suppdiv;Ptax_suppym;Ptax_codenum',[ixPrimary,ixUnique]); //필드의 인덱스 정의
> end;
> CreateTable;
> open;
> end;
>
> //위에서 정의된 필드의 디비그리드의 칼럼의 내용 이름 필등명 색등을 정의한다
> >
> > 소스는 ========================================================
> > new_column := DG_Temp.columns.Add; //부서적요 field
> > new_column.FieldName := 'jukyo';
> > new_column.Color := cl3DLight;
> > New_column.AlwaysShowEditButton := True;
> > New_column.EndEllipsis := True;
> > New_column.ButtonStyle := cbsEllipsis;
> > ===============================================================
> >
>
>
> 아래와 같이 Clear를 사용해 보세요.
> with DBGrid1 do begin
> Columns.BeginUpdate;
> Columns.Clear;
> Columns.Add;
> Columns[0].FieldName := 'First';
> Columns[0].Title.Caption := '첫번째필드';
> Columns[0].Width := 130;
> Columns[0].Color := $00D0FFFF;
> Columns.Add;
> Columns[1].FieldName := 'First';
> Columns[1].Title.Caption := '두번째필드';
> Columns[1].Width := 130;
> Columns[1].Color := $00D0FFFF;
>
> 추가하고픈 만큼 추가...
>
> Columns.EndUpdate;
> end;
> >
> > 디비그리드에 생성되어있는 모든 컬럼을 동적으로 삭제하는 방법을 알려주세여.....
> end;
>
>
> *****************************문제는 여기서입니다
> 증가된 파일을 체크후 증감하여야 합니ㅏㄷ.
>
> 제목: Re: [Q]동적 테이블 생성에서 테이블은 그대로 두고 필드수만 증가하는 법
>
> + 새로운 글입니다.
> --------------------------------------------------------------------------------쿼리문으로 하세요.procedure change_field;
> var s: string;
> begin
> s:='alter table kkk.db drop field1, add field2 char(30)';
> with query1 do begin
> close;
> sql.clear;
> sql.add(s);
> execSQL;
> end;
> end; 이전:
>