如何在程序中修改ACCESS数据库的密码?
解决方案 »
- Tchar 横坐标值 显示
- activeform怎么打开新窗口
- 如何从“d:\ddd\sss\g.txt”字符串中取出“g.txt”字符?
- 有关WORD模板调用的问题(很急,若解决,分不是问题)
- 如何判断socket连接是有效或已经意外断开???
- 推荐一个很不错的论坛
- 怎样才能让程序占满整个屏幕,就是遮住 任务栏,开始菜单等
- 用FASTREPORT怎么样建这个报表?
- 普通数据库系统能通过 odbc 或 bde 指定数据源, 现在我用 ado 如果不通过 odbc 有什么办法在安装时指定数据源?(好像通过odbc 会降低效 )
- 在Sql Server7中能否实现全文搜索?
- 在菜单上增加一条横线
- 使用fastreport中条形码属性设置的问题
//修改ACCESS数据库密码
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
format(SConnectionString,[STempFileName,ANewPassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
试一下,我不没有试过
//声明连接字符串
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';function TForm1.GetTempPathFileName():string;
//取得临时文件名
var
SPath,Sfile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(PChar(result));
end;function TForm1.ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
//修改ACCESS数据库密码
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
format(SConnectionString,[STempFileName,ANewPassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;调用实例:
procedure TForm1.Button1Click(Sender: TObject);
begin
ChangeDatabasePassword('abc.mdb','123','456');
showmessage('修改成功!');
end;本人测试过可以成功修改密码