数据库密码的问题(100分)

  • 主题发起人 主题发起人 789789
  • 开始时间 开始时间
7

789789

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样通过程序传入数据库密码?我用的是INTERBASE。
我用了Session->AddPassWord("abcd")不起作用。
 
加一个Tdatabase控件,然后:

database1.params.add('password='+passwd);
database1.loginprompt:=false;

database1.open;

 
必须使用 TDatabase 控件才能控制连结。
Database1.Params.Add('user name='+'YourName');
Database1.Params.Add('password='+passwd);
Database1.Loginprompt:=False;
Database1.Open;
 
INTERBASE ?
最好用IBX组件连接interbase.不用BDE!编程方法和BDE没区别。

database1.params.add('user_name='+sUsername);
database1.params.add('password='+sPasswd);

database1.loginprompt:=false;
database1.open;


 
以上的方式不好!我是这样解决的
应该创建数据库的动态连接函数解决问题。
此连接只需要*.GDB文件就可以,在BDE中不可见的
Function DyncDataConnect(Var DyncData:TDataBase;
const sFileName,
sUserName:string,
sPassWord:string,
sDataBaseName:String):Boolean;
var
ServerName:String;
begin
DyncData.Close;
ServerName:='SERVER NAME='+sFileName;
with Dyncdata.Params do
begin
Clear;
Add(ServerName);
Add('USER NAME='+sUserName);
Add('OPEN MODE=READ/WRITE');
Add('SCHEMA CACHE SIZE=8');
Add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT');
Add('SCHEMA CACHE TIME=-1');
Add('MAX ROWS=-1');
Add('BATCH COUNT=200');
Add('ENABLE SCHEMA CACHE=FALSE');
Add('ENABLE BCD=FALSE');
Add('BLOBS TO CACHE=64');
Add('BLOB SIZE=32');
Add('PASSWORD='+sPassword);
end;
With DyncData do
begin
LoginPrompt:=False;
DataBaseName:=sDataBaseName;
DriverName:='INTRBASE';
try
Open;
Result:=True;
except
Application.MessageBox(ERR_DYNCDATACONNECTFAILE,ERR_DYNCDATACAP,
MB_OK +MB_ICONSTOP+MB_DEFBUTTON1);
Result:=False;
end;
end;
end;
----------------------------------------------------------
用他省了不少的事情,你的密码的问题就可以解决。
 
多人接受答案了。
 
后退
顶部