本人最近在做一个数据库备份还原的程序,现在碰到一个问题如下:让用户动态输入连接sqlserver服务器的参数后(我用adoconnection组建来做),部分代码如下:str:='Provider=SQLOLEDB.1;Persist Security Info=False;User ID=' +gly.text+';Password='+mm.text+'; InitialCatalog='+db.text+';Data Source='+server.text;
//showmessage(str);
adoconnection1.Connected:= False;adoconnection1.connectionstring:=str;
try
adoconnection1.open;
adoconnection1.Connected:=true;application.MessageBox('连接服务器成功','测试连接',0);
form1.Hide;
form2.Show;except
ShowMessage('无法连接指定的数据库!请检查您的输入是否正确!');
application.Terminate;end;
这个异常处理无法处理当用户输入的数据库名称错误时,程序还是跳到form2,
如何取得sqlserver中所有数据库的名称,从而判断用户输入的数据库名称是正确的。望高手赐教!
//showmessage(str);
adoconnection1.Connected:= False;adoconnection1.connectionstring:=str;
try
adoconnection1.open;
adoconnection1.Connected:=true;application.MessageBox('连接服务器成功','测试连接',0);
form1.Hide;
form2.Show;except
ShowMessage('无法连接指定的数据库!请检查您的输入是否正确!');
application.Terminate;end;
这个异常处理无法处理当用户输入的数据库名称错误时,程序还是跳到form2,
如何取得sqlserver中所有数据库的名称,从而判断用户输入的数据库名称是正确的。望高手赐教!
FROM master.dbo.sysdatabases
SELECT *
FROM master.dbo.sysdatabases
where sid <> 0x01
with adoquery1 do
begin
active:=false;
sql.clear;
sql.add('select name from sysdatabases');
active:=True;
end;在放一个datasource和dbgrid, 就可以显示出来
FROM master.dbo.sysdatabasessp_helpdb
SELECT name
FROM master.dbo.sysdatabases
后,用adoquery的什么方法可以取到该sql执行后的记录集
begin
with DMMain.QryComm do
begin
Close;
SQL.Clear;
SQL.Add('select Name from master.dbo.sysdatabases Where DBId>6 Order By Name');
Open;
AList.Clear;
while not Eof do
begin
AList.Add(FieldByName('Name').AsString);
Next;
end; // while
Close;
end; // with
end;
//调用实例。procedure TFormArea.BitBtn1Click(Sender: TObject);
begin
YDBConnSet.GetDBNameList(self.Memo1.Lines);
end;