为什么每次运行都弹出SQL server的用户和密码窗口(50分)

  • 主题发起人 主题发起人 skimeister
  • 开始时间 开始时间
S

skimeister

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Table访问SQL server数据库
每次运行都弹出一个输入用户和密码的窗口
我可以把用户和密码等写到程序中去吗?
 
connection选项改为True
 
把DataBase的LoginPrompt设为False
 
不要在运行期OPEN,把LoginPrompt设为False。
 
同意zlj555
但是如果数据库本来就有密码的话,要在DataBase的Params中指定
user name='你的用户名'
Password='你的密码'
 
1、使用TABLE或QUERY时,加一个DATABASE,生成一个连接别名,TABLE或QUERY使用这个连接别名。
把LoginPrompt设为False。
2、同理,使用ADOTABLE或ADOQUERY时,加一个ADOCONNECTION。
 
可能是有个别的数据库控件私自连接了数据库,仔细检查呀
 
不要用data access 中的控件,建议使用ado中的控件。要么用手动写语句。data access中的query控件就是这样的。需要在odbc数据源中设置用户名和密码,就不会检索了。
adoquery语句基本两种,查询和修改。
const
gsServerName = '服务器名'
function fiOpenSQL(lsDatabaseName, lsSQL : String): Integer;
var
lqSQL : TADOQuery;
begin
lqSQL := TADOQuery.Create(nil);
with lqSQL do
begin
Close;
ConnectionString := 'Provider=SQLOLEDB.1;Password=sql;Persist Security Info=True;User ID=sa;Initial Catalog=' + lsDatabaseName + ';Data Source=' + gsServerName ;
with sql do
begin
Clear;
Add(lsSQL);
end;
try
Open;
except
begin
ShowMessage('DB_ERROR');
Result := SQL_EXCEPTION;
Free;
Exit;
end;
end;
if IsEmpty then
Result := SQL_ISEMPTY
else
Result := SQL_SUCCESS;
Free;
end;
end;

function fbExecSQL(lsDatabaseName, lsSQL : String): Boolean;
var
lqSQL : TADOQuery;
begin
Result := True;
lqSQL := TADOQuery.Create(nil);
with lqSQL do
begin
Close;
ConnectionString := 'Provider=SQLOLEDB.1;Password=sql;Persist Security Info=True;User ID=sa;Initial Catalog=' + lsDatabaseName + ';Data Source=' + gsServerName ;
with sql do
begin
Clear;
Add(lsSQL);
end;
try
ExecSQL;
except
begin
ShowMessage('DB_ERROR');
Free;
Exit;
end;
end;
Free;
end;
end;
 
多人接受答案了。
 
谢谢大家
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部