我的程序运行时,在连接属性对话框测试成功,单击连接提示用户sa登录失败,sql2000服务器,查询分析器已运行,procedure TfrmMain.Button1Click(Sender: TObject);
var
s: string;
begin
s := PromptDataSource(0, 'Provider=SQLOLEDB.1;Persist Security Info=False');
cmbCnn.Items.Add(s);end;procedure TfrmMain.SpeedButton1Click(Sender: TObject);
var
b: boolean;
begin
dstDatabase.Close;
dstFilename.Close; cnn.Close;
cnn.ConnectionString := cmbCnn.Text;
cnn.DefaultDatabase := 'master';
b := true;
try
cnn.open;
except
on e: Exception do
begin
ShowMessage('connect error');
b := false;
end;
end; if b then
begin
dstDataBase.Open;
dstFileName.Open;
dstDataBase.DisableControls;
dstFilename.DisableControls;
lstDB1.Clear;
lstDB2.Clear;
while not dstDatabase.Eof do
begin
lstDB1.Items.Add(dstDatabase.fieldbyname('name').AsString);
lstDB2.Items.Add(dstDatabase.fieldbyname('name').AsString);
if UpperCase(dstDatabase.fieldbyname('name').AsString) = 'MASTER' then
begin
sMasterpath := ExtractFilePath(dstDatabase.fieldbyname('filename').AsString);
edtMasterpath.Text := sMasterpath;
end;
dstDatabase.next;
end;
dstDataBase.EnableControls;
dstFilename.EnableControls;
end;
end;
var
s: string;
begin
s := PromptDataSource(0, 'Provider=SQLOLEDB.1;Persist Security Info=False');
cmbCnn.Items.Add(s);end;procedure TfrmMain.SpeedButton1Click(Sender: TObject);
var
b: boolean;
begin
dstDatabase.Close;
dstFilename.Close; cnn.Close;
cnn.ConnectionString := cmbCnn.Text;
cnn.DefaultDatabase := 'master';
b := true;
try
cnn.open;
except
on e: Exception do
begin
ShowMessage('connect error');
b := false;
end;
end; if b then
begin
dstDataBase.Open;
dstFileName.Open;
dstDataBase.DisableControls;
dstFilename.DisableControls;
lstDB1.Clear;
lstDB2.Clear;
while not dstDatabase.Eof do
begin
lstDB1.Items.Add(dstDatabase.fieldbyname('name').AsString);
lstDB2.Items.Add(dstDatabase.fieldbyname('name').AsString);
if UpperCase(dstDatabase.fieldbyname('name').AsString) = 'MASTER' then
begin
sMasterpath := ExtractFilePath(dstDatabase.fieldbyname('filename').AsString);
edtMasterpath.Text := sMasterpath;
end;
dstDatabase.next;
end;
dstDataBase.EnableControls;
dstFilename.EnableControls;
end;
end;
s: string;
begin
s := PromptDataSource(0, 'Provider=SQLOLEDB.1;Persist Security Info=False');
cmbCnn.Items.Add(s);
//你在哪里保存的密码?
// s := PromptDataSource(0, 'Provider=SQLOLEDB.1;Password=sa123;Persist Security Info=False');
//cmbCnn.Items.Add(s);end;
你把 cmbCnn.Text 的值取出来看下是什么?
很可能设定错误啊。
你用AdoConnection直接在控件上连接,提示连接成功后。查看Connectstring中的字符串。这个就是连接字符串。里面有字段和数值的对应显示,包括用户名和密码。