C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[9334] Re:[질문]MDB 압축하기 및 복구하기 방법???
권대길.한꼬맹이 [onekid] 2210 읽음    2001-07-25 20:17
withFish 님이 쓰신 글 :
: 안녕하세요.. withFish임다..
: 에궁.. MDB루.. 간단한 프로그램하나 만들려구 하는데...
: 이거 참 델파이에서는 mdbd을 Packing도 하구.. 복구두 하구.. 되는데..
: c빌더에서는 어떻게 해야 할지.. ^^a ;;;
: 참고루.. 제가 찾은 모듈을 올립니다.. 이거 어떻게 하면..
: C빌더에서 사용하져??
: 특히, OLEVariant type하구,
:     GetDAO_Object 하구,
:     CreateOleObject( 'DAO.DBEngine.30') 하구..
:     db.CompactDataBase(mdbFIleName,tempFile) 하구..
:     db.RepairDataBase( Filenameedit1.Text ) 하구...
: 애들을 어떻게 사용해야 할지. 모르것네여... ^^;;
: 아시는 고수님들은 부디...  ^^ ;;
:
: *********************************************************************
: Compressing an Access database
: --------------------------------------------------
: Function Compactmdb(mdbFileName:String): Boolean;
: var db : OLEVariant;
: tempFile : String;
: begin
:   result := true;
:    try
:     screen.cursor := crSQLWait ;
:    
:
:     db := GetDAO_Object ; // GET THE DATABASE OBJECT
:     result := false;
:    try
:
:     // CREATE A TEMPORARY FILE
:     tempFile := ExtractFilePath (mdbFilename) + '\msaTemp.mdb';
:
:     // COMPACT THE FILE INTO THE TEMPORARY FILE
:     db.CompactDataBase(mdbFIleName,tempFile);
:
:     // DELETE THE OLD FILE
:     DeleteFile(mdbFileName);
:
:     // RENAME THE NEW FILE
:     RenameFile (tempFile,mdbFileName);
:     Result := true;
:    Except on EOLEexception do
:     Result := false;
:    end
:   finally
:    db := Unassigned ;
:    screen.cursor := crDefault ;
:   end;
: end;
: *********************************************************************

안녕하십니까?

한꼬맹이 입니다.

소스를 보니 DAO 디비엔진을 가지고 MDB파일을 압축하는 것이군요...

컨버팅 소스 나갑니다.. (테스트는 안해봤어용..)

bool  __fastcall Compactmdb(AnsiString mdbFileName)
{
  Variant db;
  AnsiString tempFile;

  try
  {
    Screen->cursor = crSQLWait ;
    db = Variant::CreateObject("DAO.DBEngine.30");
    try
    {
      tempFile = ExtractFilePath(mdbFilename) + "\\msaTemp.mdb";
      db.OleFunction("CompactDataBase", mdbFileName, tempFile);
      DeleteFile(mdbFileName);
      RenameFile (tempFile,mdbFileName);
    }
    catch(EOleException &E)
    {
      ShowMessage("OLE 에러");
      return false;
    }
  }
  __finally
  {
   db = Unassigned;
   Screen->cursor = crDefault ;
  }
  return true;
}

그럼 참고하세요....

+ -

관련 글 리스트
9321 [질문]MDB 압축하기 및 복구하기 방법??? withFish 1476 2001/07/25
9334     Re:[질문]MDB 압축하기 및 복구하기 방법??? 권대길.한꼬맹이 2210 2001/07/25
9347         Re:Re:[질문]MDB 압축하기 및 복구하기 방법??? withFish 1500 2001/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.