Q&A

  • dbgrid에서 일련번호를 부여할려면...
안녕하세요.

dbgrid에서 테이블 또는 query에 없는 필드(new field)를 만들어서 맨 처음 칼럼에

일련번호를 넣고자 합니다.. (오름&내림차순으로)



예를 들면



순번 등록일자 등록자 제목

5 1999-01-10 1111 222222222222

4 1999-01-07 2221 222222222222

3 1999-01-03 1111 222222222222

2 1999-01-02 3333 222222222222

1 1999-01-01 2232 222222222222



이런식으로 가능한가요?



1  COMMENTS
  • Profile
    김영대 1999.10.09 00:26
    강경원 wrote:

    > 안녕하세요.

    > dbgrid에서 테이블 또는 query에 없는 필드(new field)를 만들어서 맨 처음 칼럼에

    > 일련번호를 넣고자 합니다.. (오름&내림차순으로)

    >

    > 예를 들면

    >

    > 순번 등록일자 등록자 제목

    > 5 1999-01-10 1111 222222222222

    > 4 1999-01-07 2221 222222222222

    > 3 1999-01-03 1111 222222222222

    > 2 1999-01-02 3333 222222222222

    > 1 1999-01-01 2232 222222222222

    >

    > 이런식으로 가능한가요?



    전에 올렸던 내용입니다



    -------------------------------------------------------------------------

    지금까지 나온 자료는 Paradox 와 dBASE 이외의 SQL server기반 table 에서는

    BDE 가 레코드 번호를 얻을 수 없다고 나와 있습니다



    ORACLE 의 경우는 Rowid, Rownum 을 사용하여 일련번호는 아니지만

    유일한 숫자를 얻을 수 있습니다

    예:

    SELECT ROWID, ROWNUM

    FROM 테이블명



    아래는 제가 가지고 있던 자료인데요 BDE 함수를 사용한 레코드번호를

    얻을 수 있는 함수입니다(recno 메소드를 사용해도 됩니다)

    이것도 Paradox 와 dBASE 이외의 테이블은 0 을 리턴합니다





    uses

    DB, DBTables, DbiProcs, DbiTypes, DbiErrs;



    function GetRecordNumber(Dataset: TDataset): Longint;

    var

    CursorProps: CurProps;

    RecordProps: RECProps;

    begin

    { Return 0 if dataset is not Paradox or dBASE }

    Result := 0;

    with Dataset do

    begin

    { Is the dataset active? }

    if State = dsInactive then

    raise EDatabaseError.Create('Cannot perform this operation '+

    'on a closed dataset');



    { We need to make this call to grab the cursor's iSeqNums }

    Check(DbiGetCursorProps(Handle, CursorProps));



    { Synchronize the BDE cursor with the Dataset's cursor }

    UpdateCursorPos;



    { Fill RecordProps with the current record's properties }

    Check(DbiGetRecord(Handle, dbiNOLOCK, nil, @RecordProps));



    { What kind of dataset are we looking at? }

    case CursorProps.iSeqNums of

    0: Result := RecordProps.iPhyRecNum; { dBASE }

    1: Result := RecordProps.iSeqNum; { Paradox }

    end;

    end;

    end;