Q&A

  • DB의 내용을 한 번에 지우고 크기도 줄이는..
임시로 사용한 테이블을 다시 NULL Table(?, 아무 데이터도 없는)로



만들려고 합니다. 근데 프로그램 내에서 레코드를 일일이 지우면



자료는 삭제 되는데, 실제 DB의 크기는 그대로 입니다.



델파이에 포함된 Database Desktop의 utility의 'Empty'를 사용하면



테이블이 처음 만든것처럼 크기도 줄어들고 데이터도 날라가는데



프로그램 내에서 SQL을 사용하던 함수를 쓰던,



그런 효과를 줄 수 있는 방법이 있나요???



무지 궁금하네요....



고수님들의 조언 부탁드립니다.



그리고, 미리 감사합니다.(꾸벅)





4  COMMENTS
  • Profile
    신호철 1999.04.28 02:59
    안녕하세요, 전에 이정욱님에게 답하신 텍스트파일<--> dbase(혹은 패러독스)

    파일 건에서 잘 이해가 않갑니다. Q1) DATASOURCE는 만들었는데

    alias는 자동으로 같은이름으로 만들어 지는거 아니에요? ,저는 BDE administrator에 가면 data source name 으로 만들어져 있어요.



    Q2) 그리고 더욱 제가 개념이 없는것은 테이블에 대한 개념인데

    db table은 어떻게 만들어 지나요. 혹 김영대님이 만드신 TextLoad.dpr 실행해도 테이블을 못불러와서 db에 로드 할수가 없어요.

    ,,,,,,,,, 끝까지 읽어주셔서 감사합니다.



  • Profile
    구창민 1999.07.09 08:50
    전진우 께서 말씀하시기를...

    > 임시로 사용한 테이블을 다시 NULL Table(?, 아무 데이터도 없는)로

    > 만들려고 합니다. 근데 프로그램 내에서 레코드를 일일이 지우면

    > 자료는 삭제 되는데, 실제 DB의 크기는 그대로 입니다.

    > 델파이에 포함된 Database Desktop의 utility의 'Empty'를 사용하면

    > 테이블이 처음 만든것처럼 크기도 줄어들고 데이터도 날라가는데

    > 프로그램 내에서 SQL을 사용하던 함수를 쓰던,

    > 그런 효과를 줄 수 있는 방법이 있나요???

    > 무지 궁금하네요....

    > 고수님들의 조언 부탁드립니다.

    > 그리고, 미리 감사합니다.(꾸벅)



    전진우님 안녕하세요?

    EmptyTable 메소드를 사용해보시지 않으셨다면,

    아래 그나마 안전하게 삭제하는 함수를 한번 사용해 보세요.

    그리고, 말씀하신 내용이 Pack(삭제표시된 레코드를 물리적으로 삭제)

    하고 싶으신 거라면 '델파이 헬퍼'의 팁/강좌란에서

    'Pack'이라고 입력하셔서 검색해서 응용하시면,

    원하시는 것을 구현할수 있으리라 생각되네요.

    그럼.. 즐거운 프로그래밍 되세요~



    procedure TForm1.EmptyTable(const DbName, TbName: string);

    begin

    if MessageDlg('Empty ' + TbName + ' Table? Are yousure?',

    mtConfirmation, [mbYes, mbNo], 0) = mrYes then

    begin

    with TTable.Create(nil) do

    try

    DatabaseName := DbName;

    TableName := TbName;

    repeat

    try

    EmptyTable;

    ShowMessage(TbName + ' Table Empty!');

    exit;

    except

    on EDatabaseError do

    begin

    if MessageDlg('EmptyTable failed',mtError,

    [mbAbort, mbRetry], 0) <> mrRetry then

    begin

    raise;

    end;

    end;

    end;

    until false;

    finally

    Free;

    end;

    end;

    end;





  • Profile
    신인재 1999.04.28 05:23
    신호철 wrote:

    > 안녕하세요, 전에 이정욱님에게 답하신 텍스트파일<--> dbase(혹은 패러독스)



    에구 이정욱님에게 답변한적 없는데요 이상하군요.......

    그리고 그방법 확실히 되는 방법입니다. 손발이 고생해서 그렇지......^^;



    아래는 델코의 권용길님의 방법입니다.

    저같이 무대뽀로 짜는 넘과는 조금 다르군요



    [텍스트 파일]

    ODBC에서 Text driver를 사용해서 그 텍스트 파일을 가리키는

    data source 를 하나 만드세요.



    batchmove 컴포넌트를 사용해서 source 프로퍼티를

    이 텍스트 source를 가리키는 테이블로 설정하고,

    나머지 destination 프로퍼티에는 dBase 테이블을 설정한 후,

    Copy 연산을 수행하면 됩니다.

    source와 destination을 바꾸면 반대 방향(dBase->Text)으로

    테이블 복사가 가능하지요.



    물론, dBase뿐만 아니라, 다른 모든 데이터베이스 서버로 변환

    가능합니다.



    batchmove 컴포넌트 사용법은 델파이 예제를 참고하세요.



    [ODBC 설정 하는 법]

    다음은 텍스트 소스를 설정하는 과정입니다.



    제어판에서 '32비트 ODBC'를 실행합니다.

    시스템 DSN 탭에서 추가 버튼을 누르고 Microsoft Text Driver를

    선택합니다.



    데이터 원본 이름을 적당히 설정하고,현재 경로 사용을 해제한 후

    ,경로 선택 버튼을 눌러 텍스트 파일이 존재하는 폴더를 선택해

    줍니다. 옵션 버튼을 눌러 좀더 자세하게 기능 설정할 수도 있습니다.



    여기까지 마치면 ODBC 텍스트 소스를 설정해 준 겁니다.



    이제 BDE administrator에서 이 소스를 가리키는 alias를 하나

    만들어 주고 델파이에서 사용하면 되지요.



    > 파일 건에서 잘 이해가 않갑니다. Q1) DATASOURCE는 만들었는데

    > alias는 자동으로 같은이름으로 만들어 지는거 아니에요? ,저는 BDE administrator에 가면 data source name 으로 만들어져 있어요.

    >

    alias가 자동으로 안만들어 진다는 건지 만들어진다는 건지 잘 모르겠습니다.

    데이타소스 컴포넌트와 엘리아스는 관계가 별로 없는 걸루 아는데요....

    좀 구체적으로 말씀을 부탁드립니다.



    > Q2) 그리고 더욱 제가 개념이 없는것은 테이블에 대한 개념인데

    > db table은 어떻게 만들어 지나요. 혹 김영대님이 만드신 TextLoad.dpr 실행해도 테이블을 못불러와서 db에 로드 할수가 없어요.

    > ,,,,,,,,, 끝까지 읽어주셔서 감사합니다.

    >



    디비 테이블은 database dektop으로 만드는 방법과 코딩으로 만드는 방법이 있습니다.

    그 코딩동적으로 만드는 방법은 아래와 같습니다.



    with TTable.Create(Application) do begin

    Active := False;

    DatabaseName := DBName; { * Change the DatabaseName * }

    TableName := TblName;

    TableType := ttDefault;

    FieldDefs.Add('MainIndex', ftAutoInc, 0, False);

    FieldDefs.Add('WeekNo', ftSmallInt, 0, False);

    FieldDefs.Add('BigChapter', ftSmallInt, 0, False);

    IndexDefs.Add('', 'MainIndex', [ixPrimary, ixUnique]);

    CreateTable;

    Free;

    end;



  • Profile
    김재용 1999.07.09 08:17
    그 방법보다는 코드로 테이블을 생성하는것은 어떨까요?

    그 데이타화일을 지우고 그곳에 새로운 테이블을 같은이름으로 생성을 시키는것이 더 빠르지 않을런지요...

    코드로 테이블을 생성하는 방법은 여러 델파이 사이트에 팁이나 강좌로 올라와 있습니다.





    전진우 께서 말씀하시기를...

    >

    > 임시로 사용한 테이블을 다시 NULL Table(?, 아무 데이터도 없는)로

    >

    > 만들려고 합니다. 근데 프로그램 내에서 레코드를 일일이 지우면

    >

    > 자료는 삭제 되는데, 실제 DB의 크기는 그대로 입니다.

    >

    > 델파이에 포함된 Database Desktop의 utility의 'Empty'를 사용하면

    >

    > 테이블이 처음 만든것처럼 크기도 줄어들고 데이터도 날라가는데

    >

    > 프로그램 내에서 SQL을 사용하던 함수를 쓰던,

    >

    > 그런 효과를 줄 수 있는 방법이 있나요???

    >

    > 무지 궁금하네요....

    >

    > 고수님들의 조언 부탁드립니다.

    >

    > 그리고, 미리 감사합니다.(꾸벅)

    >

    >





    • sunhee
    • 1999.07.09 19:44
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이호선
    • 1999.04.28 09:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.28 20:12
      이호선 wrote: > 안녕하세요. > 일반 Control들의 Drag&Drop은 어떻게 해야 하는지 궁금합니다. > 예를...
    • chbang
    • 1999.07.09 18:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.09 21:49
      모든 객체의 KeyPress를 만들어서 처리하려면 조금 짜증이 나죠. 이럴때 메인폼에서 한번에 처리하는 방법...
    • 이호선
    • 1999.04.28 09:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.04.28 21:33
      이호선 wrote: > 안녕하세요. > 한 폼에서 프린트가 끝난상태를 알고 폼을 닫을려 합니다. > 프린트가 ...
    • 솔잎
    • 1999.07.09 18:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.09 21:46
      엑세스 바이올레이션은 아직 생성되지 않았거나 이미 날라가 버린 객체를 제어하려고 할때 나는 에러입니다...
    • 이영일
    • 1999.07.09 18:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강두헌
      1999.04.28 06:57
      Window Message중에 WM_DDE_ACK란게 있는 모양인데 제가 가지고 있는 자료에는 없네요. 혹시 아시는 분...
    • 안치봉
      1999.04.28 07:54
      강두헌 wrote: > Window Message중에 WM_DDE_ACK란게 있는 모양인데 > 제가 가지고 있는 자료에는 없네요...
    • 강두헌
    • 1999.04.28 06:57
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 신현숙
      1999.07.09 18:18
      델파이 컴파일시..아래와 같은 에러가 난답니다. 물론, 델파이를 껐다가 다시 켜면 되기는 하지만,,, 힝...
    • 안치봉
      1999.04.28 07:54
      강두헌 wrote: > Window Message중에 WM_DDE_ACK란게 있는 모양인데 > 제가 가지고 있는 자료에는 없네요...
    • 한승현
    • 1999.04.28 00:53
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김범환
      1999.07.09 10:06
      안녕하세요. Edit 컴포넌트의 OEMConvert속성이 뭐하는 것인지 궁금해요??? 답변 기다리겠습니다. ...
    • 이정욱
      1999.04.28 05:49
      델4에서 되게 고쳐서 올렸습니다. 데이타 형을 Integer에서 Cardinal형으로 바꾸기만 했습니다. 한승...
    • 구창민
      1999.07.09 20:37
      김범환 께서 말씀하시기를... > 안녕하세요. > > Edit 컴포넌트의 OEMConvert속성이 뭐하는 것인지 궁...
    • 윤종구
    • 1999.07.09 08:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김근영
      1999.04.28 03:58
      저는 지금 interbase를 이용하여 db프로그램을 만들고 있습니다. 그런데..다름아닌..interbase에서 지원하...
    • 이정욱
      1999.07.09 11:29
      폼명을 변수로 해서 생성 후 캡션을 가져오시려고 하는것이면 이렇게 하세요. 만약 GoodForm이라는 폼(폼...
    • 신인재
      1999.04.28 05:35
      아래는 델코의 하영재님의 글을 갈무리 한것입니다. 참고하세요.... Blob 필드에서 불러오기 3가지 ...
    • 전진우
    • 1999.07.09 06:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 신호철
      1999.04.28 02:59
      안녕하세요, 전에 이정욱님에게 답하신 텍스트파일 dbase(혹은 패러독스) 파일 건에서 잘 이해가 않갑니다...
    • 구창민
      1999.07.09 08:50
      전진우 께서 말씀하시기를... > 임시로 사용한 테이블을 다시 NULL Table(?, 아무 데이터도 없는)로 > ...
    • 신인재
      1999.04.28 05:23
      신호철 wrote: > 안녕하세요, 전에 이정욱님에게 답하신 텍스트파일 dbase(혹은 패러독스) 에구 이정욱...
    • 김재용
      1999.07.09 08:17
      그 방법보다는 코드로 테이블을 생성하는것은 어떨까요? 그 데이타화일을 지우고 그곳에 새로운 테이블을 ...
    • 김태성
    • 1999.07.09 05:43
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김근영
      1999.04.28 03:58
      저는 지금 interbase를 이용하여 db프로그램을 만들고 있습니다. 그런데..다름아닌..interbase에서 지원하...
    • 구창민
      1999.07.09 08:58
      김태성 께서 말씀하시기를... > SQL 로 검색하니까 > > 다음과같은 에러가뜹니다. > > Project ccm....
    • 신인재
      1999.04.28 05:35
      아래는 델코의 하영재님의 글을 갈무리 한것입니다. 참고하세요.... Blob 필드에서 불러오기 3가지 ...
    • 남윤혁
    • 1999.07.09 05:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 신호철
      1999.04.28 02:59
      안녕하세요, 전에 이정욱님에게 답하신 텍스트파일 dbase(혹은 패러독스) 파일 건에서 잘 이해가 않갑니다...
    • 이정욱
      1999.07.09 05:26
      델파이의 도움말을 보면 이런말이 있습니다. 일단 근본적으로는 같은 기능입니다. 하지만 Destroy에...
    • 신인재
      1999.04.28 05:23
      신호철 wrote: > 안녕하세요, 전에 이정욱님에게 답하신 텍스트파일 dbase(혹은 패러독스) 에구 이정욱...
    • sinmoru
    • 1999.04.28 01:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이용훈
      1999.07.09 04:45
      그리드에는 하나의 셀만을 선택할수 있더군요.. 그렇다면.. 셀을 선택했을때 그 셀에 해당하는 라인 전체...
    • 조복기
      1999.07.09 05:12
      이용훈 께서 말씀하시기를... > 그리드에는 하나의 셀만을 선택할수 있더군요.. > 그렇다면.. 셀을 선택...
    • 얼라
    • 1999.07.09 04:26
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 한승현
    • 1999.04.28 00:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.28 05:49
      델4에서 되게 고쳐서 올렸습니다. 데이타 형을 Integer에서 Cardinal형으로 바꾸기만 했습니다. 한승...
    • 이의준
    • 1999.07.09 01:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최선미
      1999.04.27 22:46
      안녕하세요 델파이 4.0에서 퀵레포트를 사용하고있습니다. 그룹해더를 사용하는데 타이틀이나 컬럼해더...
    • mephy
      1999.04.27 23:36
      최선미 wrote: > 안녕하세요 > 델파이 4.0에서 퀵레포트를 사용하고있습니다. > 그룹해더를 사용하는데...