如何简单地根据 'IP地址,端口','用户名/密码' ,就能列出SQL 2005 Server的数据库名?
--------------------------------------------------------------------
用ADOConnection1设置连接参数时,如果填上'IP地址,端口',再填上"用户名/密码",
下面就可列出所有用户数据库名,再选中自已的库,
如何在程序中列出所有库名呢? 因为我的库名是工控软件WINCC产生的,较长,会有变化,较难确定,
让客户自已选较方便.
--------------------------------------------------------------------
用ADOConnection1设置连接参数时,如果填上'IP地址,端口',再填上"用户名/密码",
下面就可列出所有用户数据库名,再选中自已的库,
如何在程序中列出所有库名呢? 因为我的库名是工控软件WINCC产生的,较长,会有变化,较难确定,
让客户自已选较方便.
begin
if (_DATABASE = 'ACCESS') then
Result := FileExists(_DIR_APP+dbName+'.mdb')
else begin
if DM.TmpSP.Active then DM.TmpSP.Close;
DM.TmpSP.ConnectionString := GetConnString('SQLSERVER','master');
DM.TmpSP.ProcedureName := 'sp_databases'; // Master 的存储过程,取数据库名
try
DM.TmpSP.Open;
Result := DM.TmpSP.Locate('DATABASE_NAME',dbName,[]);
except
Result := False;
Application.MessageBox('连接远程报表库服务器失败','Sraft 提示',16);
end;
end;
end;
To 3楼:
ADO的连接字符串都没拼好,如何使用系统存储过程sp_databases
Sorry,我理解错误!
QRY.close;
qry.sql.text:='SELECT [NAME] FROM sysdatabases';
qry.open;
sysdatabases数据表
//自MSSQL2005后,一些与系统相关的表均被封装为视图,来避免用户直接修改系统表
select * from sys.databases