Q&A

  • DB화일 초기화는 어떻게?


안녕하세요...

초보적인 DB 질문인데 잘 몰라서 질문 올립니다...



프로그램 수행 결과값을 DB화일로 저장하려고 합니다.

그런데 프로그램을 수행할 때마다 서로다른 결과값들이 산출되는데

기록되는 DB화일은 동일한 화일을 쓰게 됩니다.

그랬더니 하나의 DB화일에 이전의 값들이 그대로 남아 있어 불편함을

주더군요...

이런 경우 필드는 살려둔체 레코드만 지워버리면 쉽게 문제가 해결될 것

같은데...

어떻게 필드만 살려놓고 레코드만 지우면 되는지요?

그리고 결과값들이 항상 상위에 기록되는 것 같은데...

기록순서에 따라 하위로 기록되게 하는 방법은 없습니까?



많은 도움 부탁드립니다.

이만 총총...





2  COMMENTS
  • Profile
    황하성 1999.07.15 17:29
    황하성 께서 말씀하시기를...

    >

    > 안녕하세요...

    > 초보적인 DB 질문인데 잘 몰라서 질문 올립니다...

    >

    > 프로그램 수행 결과값을 DB화일로 저장하려고 합니다.

    > 그런데 프로그램을 수행할 때마다 서로다른 결과값들이 산출되는데

    > 기록되는 DB화일은 동일한 화일을 쓰게 됩니다.

    > 그랬더니 하나의 DB화일에 이전의 값들이 그대로 남아 있어 불편함을

    > 주더군요...

    > 이런 경우 필드는 살려둔체 레코드만 지워버리면 쉽게 문제가 해결될 것

    > 같은데...

    > 어떻게 필드만 살려놓고 레코드만 지우면 되는지요?

    > 그리고 결과값들이 항상 상위에 기록되는 것 같은데...

    > 기록순서에 따라 하위로 기록되게 하는 방법은 없습니까?

    >

    > 많은 도움 부탁드립니다.

    > 이만 총총...

    >

    >



    자문 자답을 하게 되는군요.

    하루종일 고민하고 찾아보다가 첫번째 질문에 대한 나름대로의 답을 찾았기에 글을 올립니다.



    with Table1 do



    begin

    Active := False;

    DatabaseName := 'Delphi_Demos';

    TableName := 'CustInfo';

    TableType := ttParadox;

    EmptyTable;

    end;



    의 방식을 사용하게 되면 원하는 DB화일의 레코드를 삭제할 수 있더군요.

    EmptyTable라는 명령어를 사용해서요.

    전 굳이 Query를 사용하지 않고 해결하는 방식을 찾다보니 그렇게 되었답니다.

    그런데 아직 두번째 물음에 대한 답은 찾지를 못했답니다.



    혹 아시는 분은 도움 부탁드립니다.





  • Profile
    정재홍 1999.07.14 22:31
    황하성 께서 말씀하시기를...

    >

    > 안녕하세요...

    > 초보적인 DB 질문인데 잘 몰라서 질문 올립니다...

    >

    > 프로그램 수행 결과값을 DB화일로 저장하려고 합니다.

    > 그런데 프로그램을 수행할 때마다 서로다른 결과값들이 산출되는데

    > 기록되는 DB화일은 동일한 화일을 쓰게 됩니다.

    > 그랬더니 하나의 DB화일에 이전의 값들이 그대로 남아 있어 불편함을

    > 주더군요...

    > 이런 경우 필드는 살려둔체 레코드만 지워버리면 쉽게 문제가 해결될 것

    > 같은데...

    > 어떻게 필드만 살려놓고 레코드만 지우면 되는지요?

    > 그리고 결과값들이 항상 상위에 기록되는 것 같은데...

    > 기록순서에 따라 하위로 기록되게 하는 방법은 없습니까?

    >

    > 많은 도움 부탁드립니다.

    > 이만 총총...

    >

    >



    어떤 DB를 사용하시는 지는 모르겠지만 위의 질문 내용으로 보아

    임시로 테이블을 생성하여 사용하는것 같군요...



    제 생각에는 이렇게 하면 될것 같은데...



    procedure Tf_bankrptopt.TempTableDelete;

    var

    qry_delete:TQuery;

    begin

    //기존 자료를 모두 지운다....

    qry_delete := TQuery.Create(nil);



    with qry_delete do

    begin

    databasename := 'skruji';

    close;

    sql.clear;

    sql.add(' delete from banktemp ');

    execsql;

    close;

    free;

    end;

    end;



    그리고 자료가 테이블에 기록되는 것은 제 생각에는

    프라이머리 키 순서에 의해 저장이 되는 걸로 알고 있습니다.

    자세한 내용은 잘 모르겠군요...

    저는 이걸 이렇게 해결했습니다.

    인덱스를 설정을 해서 사용할때 인덱스를 통해 다시 정렬해서 사용하는

    방식으로...



    저도 실력이 없어서리...



    이 질문에 대해서는 다른 실력있는 분들의 도움을 받으심이...



    그럼 문제해결에 도움이 되었기를....