게시판에서 순번 매기는 거에 대해서 찾아보니깐.
CalcFields를 사용해서 하면 잘 나온다 해서 했는데요..
이상하게 나옵니다 ㅜ.ㅜ
procedure TForm1.Button1Click(Sender: TObject);
begin
with Query1 do begin
Close;
Sql.Clear;
Sql.Add('Select * from p028sal_tbl');
open;
end;
end;
procedure Query1CalcFields(DataSet: TDataSet);
begin
Query1.FieldByName('aaaa').AsInteger := Query1.RecNo;
end;
이렇게 하니깐 순번이 죄~~다 '-1'로만 나오네요..
어찌된것인지..
제가 뭘 잘못했는지요..
코딩(?)은 위에 저게 다~ 인데..
뭔가 다르게 설정해 줘야 하는게 있나요??
사용하는 디비는 SQL7.0, DB2 이 두개 디비에서 순번 매기는걸 해야하는데요.
속터져 두글것 같아요 ㅜ.ㅜ
잠시후...
procedure TForm1.Button1Click(Sender: TObject);
begin
iCnt := 1; //전역변수로 잡았어요 ^^
with Query1 do begin
Close;
Sql.Clear;
Sql.Add('Select * from p028sal_tbl');
open;
end;
end;
procedure Query1CalcFields(DataSet: TDataSet);
begin
query1.FieldByName('aaa').Asinteger := icnt;
icnt := icnt + 1;
end;
이렇게 멋대로 고쳐놓구..
실행시켜 봤더니!! 1,2,3,4,.....64(데이타 64개여요)이렇게 잘 나왔는데요.
역시 전 부족함이 많은가 봅니다 ㅜ.ㅜ
디비그리드의 스크롤을 올렸다 내렸다 하니 숫자가 무쟈게 증가하더군요..
잠시나마 해결해따.. ㅜ.ㅜ 이러구 자만에 빠져있었는뎅..
이건 또 왜 이러나요 ㅜ.ㅜ
이거 해야지 잘 수 있는뎅..
부탁 드립니다.
아니면 그냥 보여주기만 하면 되는것인지 모르겠네요..
먼저 이벤트에 대해서 언제 타는지 파악을 하시는게 중요할거 같구요..
CalField에 저렇게 넣으면 엄청나게 많이 탈겁니다..
시점은 자료가 입력 될떄 겠지요...
아래처럼 코딩하지 마시고..AfterInsert 이벤트에다가 전역변수를 +1씩해주는
걸 넣어 주심 될거 같네요..하지만 이렇게 하면 문제가 많을것 같습니다...
지금 자료가 부족해서 제대로 설명해드리긴 힘들겠구요..
좀더 아시고 싶으심 MSN으로 메세지 날리셈...~~~