1. 枚举局域网内所有的SQLSERVER实例
函数:
function GetAllServerInstances :TStringList;
var
oApplication ,
oSeverNameList : Variant ;
i : integer ;
sNameList : TStringList ;
begin
sNameList := TStringList.Create ;
oApplication := CreateOLEObject ('SQLDMO.Application') ;
oSeverNameList := oApplication.ListAvailableSQLServers ;
for i:= 1 to oSeverNameList.Count do
sNameList.Append (oSeverNameList.Item(i)) ;
Result := sNameList ;
oApplication := NULL;
oSeverNameList := NULL;
end;
2.登陆到指定的SQLSERVER实例
函数:
function LoginServerInstances (sServer,sUser,sPassword :string):Variant;
var
oSQLServer : Variant ;
begin
oSQLServer := CreateOLEObject ('SQLDMO.SQLServer');
oSQLServer.LoginTimeout := 30;
oSQLServer.LoginSecure := False;
oSQLServer.AutoReconnect := True;
oSQLServer.Connect(sServer,sUser,sPassword);
Result := oSQLServer;
oSQLServer := NULL ;
end;
以上两个函数可以帮助我们完成取得局域网内所有的SQLSERVER实例并且
登陆上一个指定的实例。接下来就看看如何取得指定数据库的表名称和存储
过程名称 :
3.枚举指定Sqlserver实例所有database的名称
函数:
function GetAllDatabaseNameList (oSQLServer : Variant ):TStringList;
var
sNameList : TStringList ;
i : integer;
begin
sNameList := TStringList.Create ;
for i:= 1 to oSQLServer.Databases.Count do
sNameList.Append (oSQLServer.Databases.Item(i).Name) ;
Result := sNameList ;
end;
4.枚举指定数据库所有Table的名称
函数:
function GetAllTableNameList (oSQLServer : Variant ; sDataBaseName : string ):TStringList;
var
oDatabase : Variant ;
sNameList : TStringList ;
i : integer;
begin
sNameList := TStringList.Create ;
oDatabase := CreateOLEObject ('SQLDMO.Database');
oDatabase := oSQLServer.Databases.Item(sDataBaseName);
for i:= 1 to oDatabase.Tables.Count do
sNameList.Append (oDatabase.Tables.Item(i).Name) ;
Result := sNameList ;
oDatabase := Null ;
end;
5.枚举指定数据库所有StoreProcedure的名称
函数:
function GetAllStoreProcedureNameList (oSQLServer : Variant ; sDataBaseName : string ):TStringList;
var
oDatabase : Variant ;
sNameList : TStringList ;
i : integer;
begin
sNameList := TStringList.Create ;
oDatabase := CreateOLEObject ('SQLDMO.Database');
oDatabase := oSQLServer.Databases.Item(sDataBaseName);
for i:= 1 to oDatabase.StoredProcedures.Count do
sNameList.Append (oDatabase.StoredProcedures.Item(i).Name) ;
Result := sNameList ;
oDatabase := Null ;
end;