怎样才能不出现打开ACCESS数据库时输入用户名及密码窗口

cy111 2000-11-10 10:00:00
...全文
685 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
saoren 2000-11-28
  • 打赏
  • 举报
回复
GetAccessPass不在本机,下次再给.
saoren 2000-11-28
  • 打赏
  • 举报
回复
with database1 do
begin
LoginPrompt:=false;
Connected:=false;
Params.Clear;
Params.Add('Database Name='+YourAccessDatabase);
Params.Add('Password='+GetAccessPass(YourAccessDatabase));
Connected:=true;
end;

//解出Access密码.
function GetAccessPass(FileName:string):string;
begin
.
.
.
end;

与Database1连接的Table或Query或是其它的数据控件,是不关Database的事,无须理会.
sunboy19 2000-11-28
  • 打赏
  • 举报
回复
你是用table或query与其它控件连接吗?如果是,那就好办了。先添加一个database,将它的aliasname设为你所用的ODBC数据源,再设置它的DatabaseName属性(可随便输入,只要不和ODBC中的数据源相同就行),先将Loginprompt设为True,再把connected也设为True,此时,系统会出现输入用户名及密码窗口,别担心,正确输入一遍后,把Loginprompt设为False即可。在table或query中,把DatabaseName设为你刚才自己添加的database中的DatabaseName,即可不出现打开ACCESS数据库时输入用户名及密码窗口
Hank 2000-11-28
  • 打赏
  • 举报
回复
下面的是本人在大富翁论坛的一个总结,看一下!

1、通过BDE
如果通过BDE,那么速度会快一些(相对ODBC),连接是需要DAO支持,具体方法是:
BDE-->Configuration-->Configuration-->Drivers-->Native-->MSACCESS-->DLL32
将DLL32的值设为IDDA3532.DLL;
然后可以直接引用了,举个例子:
BDE-->Databases-->Databases-->New-->从Database Driver Name中选择MSACCESS-->DATABASE NAME
将DATABASE NAME的值设为你自己的数据库即可

2、通过ODBC
打开控制面板,双击“32位 ODBC”图标,出现“ODBC 数据源管理器”对话窗口,然后单击“添加”按钮,出现“创建数据源”对话窗口,选择Microsoft Access Driver,然后单击完成,出现“ODBC Microsoft Access 97 安装”对话窗口。在“数据源名”文本框中输入数据库别名,“描述”文本框中输入相应的描述,然后单击“选取”按钮,选中系统的数据库,然后单击“确定”按钮即可完成

3、通过ADO
在设计阶段建立TADOConnection和TADODataSet控件,将TADODataSet控件的Connection属性设为TADOConnection,然后设置TADOConnection控件的ConnectionString属性即可连接。
具体方法:
单击ConnectionString对话框,选择Build...,单击下一步,然后可以根据你的实际情况连接!

经验:无论通过那种方法连接,都需要MDAC(含ODBC)及其相关连接库支持,通过BDE连接也需要DAO支持(不需要ODBC),不过可以在安装Office时选择。
最后说明的是每个人都关心的问题:怎样取消掉密码对话框?
无论通过BDE或ODBC,要取消密码都要建立TDatabase控件,设置AliasName,将LoginPrompt属性设为True,具体只是Params属性的参数不同
如果通过ODBC连接,那么要设置
USER NAME=yourname
PASSWORD=yourpass
如果通过BDE连接,那么要设置
Password=yourpass
不能混淆,否则出错!

至于别的在实际应用过程中的问题就不一一累述,需要注意的是:通过BDE连接不能辨认数据库的Procedures!
cwhelucky 2000-11-20
  • 打赏
  • 举报
回复
将的我东西复制给你,别讲你不会呀,我的东西都存在注册表里的
你可以不必理会,只须从我的号地方看起即可,但你必将其loginprompt设为false,
database控件的connect设为 false;
procedure TDataModule1.TDataModule1Create(Sender: TObject);
var
L_maxid:Integer;
DatabaseUserid,DatabasePassword:String;
begin
DatabaseUserid:=FindRegKeyString(REG_ROOTKEY,REG_SOFTWAREFOLDER+'\Database','UserID');
if Length(DatabaseUserid)=0 then
begin
WriteRegKeyString(REG_ROOTKEY,REG_SOFTWAREFOLDER+'\Database','UserID','');
end;
DatabasePassword:=FindRegKeyString(REG_ROOTKEY,REG_SOFTWAREFOLDER+'\Database','Password');
if Length(DatabasePassword)=0 then
begin
WriteRegKeyString(REG_ROOTKEY,REG_SOFTWAREFOLDER+'\Database','Password','password');
end;
***************************************
DataBase1.Params.Add('USER NAME='+DatabaseUserid);
DataBase1.Params.Add('PASSWORD='+DatabasePassword);
try
DataBase1.Connected:=True;
except
Application.Terminate;
end;

CheckXZDatabase();

if Not Login() then Application.Terminate;

with TQuery.Create(Self) do
begin
Close;
DatabaseName:=DatabaseAlias;
SQL.Clear;
SQL.Add('select * from sz_jbxx');
Open;
if RecordCount=0 then
begin
L_maxid:=INCID('sz_jbxx');
SQL.Clear;
SQL.Add('insert into sz_jbxx (id,sz_jbxx_dwmc) values('+IntToStr(L_maxid)+','''')');
ExecSQL;
PUBLIC_DWMC:='';
end
else
begin
PUBLIC_DWMC:=FieldByName('sz_jbxx_dwmc').AsString;
end;
Free;
end;
tb_ryxx.Active :=true;
tb_ryzp.Active :=true;
tb_rysy.Active :=true;
tb_zzry.Active :=true;
tb_txry.Active :=true;
tb_bm.Active :=true;
tb_lsry.active:=true;
TB_lxry.active:=true;
tb_ctry.Active :=true;
tb_rykq.active:=true;
tb_kqgz.Active :=true;
tb_xz_xm.Active :=true;
tb_xm_sz_xx.active:=true;
tb_rs_ht.Active:=True;

end;
xlsu 2000-11-12
  • 打赏
  • 举报
回复
加入一个Tsession,然后设定session.sessionname,并将该表/数据库的
sessionname设为该值,这样在session的onpassword事件中加入password即可.
cy111 2000-11-12
  • 打赏
  • 举报
回复
有人回答这个问题吗
cy111 2000-11-10
  • 打赏
  • 举报
回复
问题是我用的是datasourse与其它数据控件联结,用database怎样与其它控件联结
cy111 2000-11-10
  • 打赏
  • 举报
回复
如果使用datasource如何?
  • 打赏
  • 举报
回复
用在database access中的database控件连接数据库,并将loginprompt设为false;
如果数据库有密码,请你手工在其参数中加上,或者用代码加上!
yousoft2013 2000-11-10
  • 打赏
  • 举报
回复
您必须通过代码实现密码的传递。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧