본문 바로가기
IT-개발,DB

[개발/델파이] 델파이로 MDB 데이터베이스 만들기

by SB리치퍼슨 2012. 12. 5.

델파이로 MDB 데이터베이스 만들기



델파이로 MDB 데이터베이스 만들기

uses에 comobj 추가


// 데이터베이스 생성(MDB)

function CreateDB(const sPath: string;

                  var sErr: string): Boolean;

const

    csConnStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source="%s"';

var

    oleCatalog: OleVariant;

    sConnStr: string;

begin

    Result := false;

    sConnStr := Format(csConnStr, [sPath]);

    try

        try

            oleCatalog := CreateOleObject('ADOX.Catalog');

            oleCatalog.Create(sConnStr);

        finally

            oleCatalog := Unassigned;

        end;

        Result := true;

    except

        on Err:Exception do sErr := Err.Message;

    end;

end;



MDB 패스워드 설정하기

MDB 패스워드 변경하기

MDB 최적화하기


// 패스워드 설정/변경

// 데이터베이스 최적화하기

function ChangePWD(const sPath, sOldPass, sNewPass: string;

                   var sErr: string): Boolean;

const

    CONN_STR = 'Data Source="%s";Jet OLEDB:Database Password=%s';

var

    ovEngine: OleVariant;

    sBakPath: string;

    sStr1, sStr2: string;

begin

    Result := false;

    // 백업파일 패스

    sBakPath := ChangeFileExt(sPath, '.bak');

    // 기존 백업 파일 삭제

    DeleteFile(sBakPath);


    sStr1 := Format(CONN_STR, [sPath, sOldPass]);

    sStr2 := Format(CONN_STR, [sBakPath, sNewPass]);

    try

        try

            ovEngine := CreateOleObject('JRO.JetEngine');

            // 최적화기능을 이용한 패스워드 설정

            ovEngine.CompactDatabase(sStr1, sStr2);

            // 기존 데이터 삭제

            DeleteFile(sPath);

            RenameFile(sBakPath, sPath);

        finally

            ovEngine := Unassigned;

        end;

        Result := true;

    except

        on Err:Exception do sErr := Err.Message;

    end;

end;

반응형

댓글